Techniques for context sensitive illustrated graphical user interface elements

ABSTRACT

Techniques for context sensitive illustrated graphical user interface elements, comprising a social networking application. The social networking application may include, among other components, a social networking graphical elements management component to provide a list of recommended graphical element identifier information, in response to a request for the list of recommended graphical element identifier information, a context determination component to determine user context information representative of the at least one user context based at least partially on user communications intent information, user profile information, device location information, calendar event information, and/or external event information, and a graphical elements recommendation component to generate the list of recommended graphical element identifier information based at least partially on the user profile information, graphical elements promotion information, and/or the user context information.

CROSS-REFERENCE TO RELATED APPLICATIONS

The present application is a continuation of U.S. application Ser. No.17/561,137, filed Dec. 23, 2021 which is a continuation of U.S.application Ser. No. 16/557,730, filed on Aug. 30, 2019, which issued asU.S. Pat. No. 11,221,736, which is a continuation of U.S. applicationSer. No. 16/423,863, filed on May 28, 2019, which issued as U.S. Pat.No. 11,086,484, which is a continuation of U.S. application Ser. No.14/677,154, filed on Apr. 2, 2015, which issued as U.S. Pat. No.10,353,542. The aforementioned applications are hereby incorporated byreference in their entireties.

BACKGROUND

A social networking system, such as a social networking website, enablesone or more users to interact with each other in the social networkingsystem by providing social networking services to the one or more users.With the recent increase in mobile devices, numerous users have alsobegun using their mobile devices to interact with the one or more usersin the social networking system such, as, for example, social networkmessaging services. However, this increase in use of mobile devices toaccess social networking services has also placed an increased demandfor improvements in social network messaging services, especially withrespect to the use of illustrated graphical user interface elements.

SUMMARY

The following presents a simplified summary in order to provide a basicunderstanding of some novel embodiments described herein. This summaryis not an extensive overview, and it is not intended to identifykey/critical elements or to delineate the scope thereof. Its solepurpose is to present some concepts in a simplified form as a prelude tothe more detailed description that is presented later.

Various embodiments are generally directed to techniques for contextsensitive illustrated graphical user interface elements. Someembodiments are particularly directed techniques for management ofcontext sensitive illustrated graphical user interface (UI) elements. Inone embodiment, for example, an apparatus may include a processorcircuit, memory operatively coupled to the processor circuit, the memoryto store a social networking application comprising a social networkinggraphical elements component for execution by the processor circuit. Thesocial networking graphical elements component may comprise a socialnetworking graphical elements management component to provide a list ofrecommended graphical element identifier information, in response to arequest for the list of recommended graphical element identifierinformation, a context determination component to determine user contextinformation representative of the at least one user context based atleast partially on user communications intent information, user profileinformation, device location information, calendar event information,and/or external event information, and a graphical elementsrecommendation component to generate the list of recommended graphicalelement identifier information based at least partially on the userprofile information, graphical elements promotion information, and/orthe user context information. Other embodiments are described andclaimed.

To the accomplishment of the foregoing and related ends, certainillustrative aspects are described herein in connection with thefollowing description and the annexed drawings. These aspects areindicative of the various ways in which the principles disclosed hereincan be practiced and all aspects and equivalents thereof are intended tobe within the scope of the claimed subject matter. Other advantages andnovel features will become apparent from the following detaileddescription when considered in conjunction with the drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1A illustrates an exemplary embodiment of a context sensitiveillustrated graphical user interface elements system.

FIG. 1B illustrates an exemplary embodiment of a device, which may be amobile device, comprising one or more applications.

FIG. 1C illustrates an exemplary embodiment of the graphical elementcomponent which may be operatively coupled to a messaging application.

FIG. 2A illustrates an operating environment of a social networkinggraphical elements component.

FIG. 2B illustrates an operating environment of illustrated graphicaluser interface elements stored in graphical elements datastore.

FIG. 3 illustrates a graphical elements message input user interfaceview before receiving at least a portion of a social message.

FIG. 4 illustrates a graphical element preview user interface viewvisually presenting one or more illustrated graphical user interfaceelements.

FIG. 5 illustrates another embodiment of the graphical elements messageinput user interface view after transmitting the social message and anillustrated graphical user interface element.

FIG. 6 illustrates an exemplary logic flow for at least determining listof recommended graphical element identifier information.

FIG. 7 illustrates an exemplary embodiment of a computing architecture.

DETAILED DESCRIPTION

Various embodiments are generally directed to context sensitiveillustrated graphical user interface elements. Typically, a mobileapplication may enable users to send and receive one or more socialmessages back and forth via a social networking system. To provide userswith a more entertaining experience in their conversations and conveynon-textual information, the context sensitive illustrated graphicaluser interface elements system may monitor the conversation and enableusers to send and receive one or more illustrated graphical userinterface elements, such as, for example, as “stickers.”

To ensure that the illustrated graphical UI elements are relevant to auser's context including a user's intent within a social message,context sensitive illustrated graphical user interface elements systemmay analyze one or more social messages, including, received,transmitted, or a portion of a social message to be transmitted, andhighlight, underline, or emphasize one or more terms, phrases, and/orsymbols that correspond to a user's intent. The user may then select theemphasized terms, phrases, and/or symbols to request a list ofrecommended graphical element identifier information representative ofone or more recommended graphical UI elements. The user's intent, incombination with other information (e.g., user's interests, user'slocation, user's calendar events, holiday events, etc.) associated withthe user, which may be representative of a user's context, may then beanalyzed to generate the list of recommended graphical elementidentifier information representative of the one or more recommendedgraphical UI elements for the user based at least partially on theuser's intent.

To provide users with ease of selecting one or more illustratedgraphical UI elements, the context sensitive illustrated graphical userinterface elements system may render and visually present a grid ofillustrated graphical UI elements for transmission or otherwise sharingwith one or more recipient users in the social networking system.Additionally, the context sensitive illustrated graphical user interfaceelements system may rank the recommended illustrated graphical UIelements for visual presentation to the user on a device based at leastpartially on illustrated graphical UI elements that are currently beingpromoted, illustrated graphical UI elements user already owns, andillustrated graphical UI elements the user does not already own.Furthermore, one or more groups of predetermined size may be reservedfor illustrated graphical UI elements that are currently being promoted,illustrated graphical UI elements user already owns, and illustratedgraphical UI elements the user does not already own to ensure that usersare visually presented with of illustrated graphical UI elements.

To provide various entities with advertising opportunities, the contextsensitive illustrated graphical user interface elements system mayfurther bias the selection process of one or more illustrated graphicalUI elements for visual presentation to a user on a device based at leastpartially on graphical elements promotion information which mayrepresentative of one or more entities that have provided financialinterests to the operators and/or owners of the context sensitiveillustrated graphical user interface elements system.

To provide incentives for users to share one or more illustratedgraphical UI elements and consequently, increase brand recognitionand/or advertisement opportunities, the context sensitive illustratedgraphical user interface elements system may further provide promotionsand/or discounts for users who share one or more illustrated graphicalUI elements and/or the recipient users who received the one or moreillustrated graphical UI elements. As a result of these improvementsdiscussed above and elsewhere, the users' experiences in sharing imagesand/or videos on one or more devices may be greatly improved.

With general reference to notations and nomenclature used herein, thedetailed descriptions which follow may be presented in terms of programprocedures executed on a computer or network of computers. Theseprocedural descriptions and representations are used by those skilled inthe art to most effectively convey the substance of their work to othersskilled in the art.

A procedure is here, and generally, conceived to be a self-consistentsequence of operations leading to a desired result. These operations arethose requiring physical manipulations of physical quantities. Usually,though not necessarily, these quantities take the form of electrical,magnetic or optical signals capable of being stored, transferred,combined, compared, and otherwise manipulated. It proves convenient attimes, principally for reasons of common usage, to refer to thesesignals as bits, values, elements, symbols, characters, terms, numbers,or the like. It should be noted, however, that all of these and similarterms are to be associated with the appropriate physical quantities andare merely convenient labels applied to those quantities.

Further, the manipulations performed are often referred to in terms,such as adding or comparing, which are commonly associated with mentaloperations performed by a human operator. No such capability of a humanoperator is necessary, or desirable in most cases, in any of theoperations described herein which form part of one or more embodiments.Rather, the operations are machine operations. Useful machines forperforming operations of various embodiments include general purposedigital computers or similar devices.

Various embodiments also relate to apparatus or systems for performingthese operations. This apparatus may be specially constructed for theneeded purpose or it may comprise a general purpose computer asselectively activated or reconfigured by a computer program stored inthe computer. The procedures presented herein are not inherently relatedto a particular computer or other apparatus. Various general purposemachines may be used with programs written in accordance with theteachings herein, or it may prove convenient to construct morespecialized apparatus to perform the needed method steps. The neededstructure for a variety of these machines will appear from thedescription given.

Reference is now made to the drawings, wherein like reference numeralsare used to refer to like elements throughout. In the followingdescription, for purposes of explanation, numerous specific details areset forth in order to provide a thorough understanding thereof. It maybe evident, however, that the novel embodiments can be practiced withoutthese specific details. In other instances, well known structures anddevices are shown in block diagram form in order to facilitate adescription thereof. The intention is to cover all modifications,equivalents, and alternatives consistent with the claimed subjectmatter.

FIG. 1A illustrates an exemplary embodiment of a context sensitiveillustrated graphical user interface elements system 100. In variousembodiments, the context sensitive illustrated graphical user interfaceelements system 100 may comprise a social networking system 101 (e.g.,Facebook, Google+, LinkedIn, etc.) and one or more devices 102-a (e.g.,server devices, mobile devices, computing devices, networking devices,etc.) for providing social networking services to enable various users(e.g., persons, businesses, hardware/software components, computingdevices, etc.) to communicate and interact between and among each other.To provide the social networking services to various users, the one ormore devices 102-a associated with various users may be operativelycoupled to the social networking system 101 via communications network103 (e.g., internet, intranet, cellular network, etc.) utilizing variouscommunications mediums (e.g., wired, wireless, fiber optic, etc.) and/orcommunications standards (e.g., Ethernet IEEE 802.3, Wireless IEEE802.11, WiMAX IEEE 802.16, Global Systems for Mobile Communications(GSM), Enhanced Data Rates for GSM Evolution (EDGE), Long Term Evolution(LTE), etc.).

It is worthy to note that “a” and “b” and “c” and similar designators asused herein are intended to be variables representing any positiveinteger. Thus, for example, if an implementation sets a value for a=2,then a complete set of devices 102-a may include devices 102-1 and102-2. Similarly, if an implementation sets value for a=2, then acomplete set of applications 124-a-1 may include applications 124-1-1and 124-2-1. Furthermore, if an implementation sets value for b=6, thena complete set of applications 124-1-b may include applications 124-1-1,124-1-2, 124-1-3, 124-1-4, 124-1-5, and 124-1-6. The embodiments are notlimited in this context.

To utilize the social networking services provided by the socialnetworking system 101, each device of the one or more devices 102-a maybe configured to execute at least application 124-a-1. The application124-a-1 may be configured to communicate with the social networkingsystem 101 via communications network 103 to provide the socialnetworking services, such as, for example, social messaging services tothe users. To maintain a persistent presence and ensure secure access tothe social networking system 101, each user of application 124-a-1 maybe associated with a user account in the social networking system 101.Each user account may be represented by user account information. Theuser account information for each user may include, but is not limitedto, user account identifier (e.g., phone number, e-mail address, etc.),user account authentication token (e.g., user account password, physicaland/or virtual security tokens, etc.), and/or any other informationrelevant to the authentication and authorization of each user.

To ensure authorized access of each user, the social networking system101 may be further configured to authenticate each user based on atleast a portion of the user account information (e.g., user accountidentifier, user account authentication token, etc.) provide by eachuser and received from one or more devices 102-a. Once a user having theassociated user account has been successfully authenticated, the socialnetworking system 101 may provide the application (e.g., application124-1-1 and/or application 124-1-2) with one or more time limited accesstokens having a set of access permissions associated with the useraccount of the user to retrieve, store, modify, update, and/or otherwiseaccess information within a specific time period in the socialnetworking system 101 utilizing the application.

Each user account may be further associated with a user profilerepresentative of a user's presence within the social networking system101. Each user profile associated with each user may be represented byuser profile information, which may include, but is not limited to, useridentifier information (e.g., a unique identifier that identifies theuser and the user profile information), user biographic and/ordemographic information, (e.g., user name information which may include,but is not limited to, a first, middle, and/or last name of the user, anentity name associated with the user, contact information of the user,birth date of the user, age of the user, sex of the user, etc.), userprofile media information (e.g., profile image(s) of the user, a focuseduser profile image of the user, etc.), user location information (e.g.,the hometown location of the user, the current location of the user, thework location(s) of the user, etc.), user time zone information (e.g.,time zone of the user, etc.), user social connections information (e.g.,a list of friends, family members, coworkers, teammates, classmates,business associates, of the user), user groups membership information,user interest information (e.g., the interests listed by the user,movies listed by the user, music listed by the user, books listed by theuser, approvals or “likes” of the user, or any other information thatmay identify the user's interest), user employment history information(e.g., list of current and/or past employers of the user), user socialmessages information (e.g., one or more social networking messages wherethe user is a recipient), user event information (e.g., one or moresocial events associated with the user, etc.), user profile discussioninformation (e.g., one or more profile activities, such as, profileposts in the user profile), user search information (e.g., one or moresearch queries inputted by the user), user illustrated graphicalelements ownership information (e.g., references to one or moreillustrated graphical UI elements stored in the graphical elementsdatastore 112-3 possessed or otherwise owned by the user), userillustrated graphical elements usage information (e.g., references toone or more illustrated graphical UI elements that are purchased byand/or otherwise owned by the user and the associated usage frequencyfor each illustrated graphical UI element, etc.) or any otherpreference/personal information associated with the user.

In some embodiments, the social networking system 101 may enable one ormore applications (e.g., social application 124-1-1 further discussedwith respect to FIG. 1B, etc.) of device 102-a to retrieve at least aportion of the user profile information associated with the user anddisplay at least a portion of the user profile information on one ormore display screens operatively coupled to the devices 102-a. Tofacilitate user interaction between and among users in the socialnetworking system 101, the social networking system 101 may also enableusers to search user profile of other users based at least partially ona received search query and at least a portion of the user profileinformation associated with other users, retrieve at least a portion ofthe user profile information of the other users, and form one or moresocial connections with other users by enabling users via the one ormore applications of devices 102-a to identify other users as the user'sfriend, family member (e.g., spouse, cousin, mother, father,grandmother, grandfather, brother, sisters, daughter, son, etc.),coworker, teammate, classmate, business associate, or any other socialrelationship.

It may be appreciated that the social connections formed between a pairof users may be unidirectional, when only one user in the pair of usersidentifies and acknowledges the type and existence of socialrelationship. Alternatively, the social connections formed between thepair of users may be bidirectional when both users in the pair of usersidentify the same type of social relationship and the existence ofsocial relationship. As such, the social networking system 101 furtherreceive, provide, and/or update user social connections informationwhich may include, but is not limited to, a list of social connectioninformation representative of the social connections of the user (e.g.,the user identifier information or other resource or social networkingobject the user is connected to) and the social connection typeinformation representative of a social connection type (e.g., friend,family member, coworker, teammate, classmate, business associate, and/orany other social relationship) associated with each social connection.Based on the user social connections information of a plurality users,the social networking system 101 may be further configured to determinesocial proximity information which may include, but is not limited to,the degree of separation between one or more pairs of users.

In some embodiments, the social networking system 101 may further enableusers to create, publish, or post one or more profile activities (e.g.,posts, polls, Universal Resource Identifier/Universal Resource Locator(URI/URL) references, etc.), or any other information on the user's ownuser profile represented by the user profile information. Additionally,in some embodiments, the social networking system 101 may further enablesome users to create, publish, post one or more profile activities onuser profiles of other users based at least partially on the user socialconnection information of the other users. The social networking system101 may also enable users to send and/or receive private social messagesto one or more users by communicating the user social messagesinformation comprising one or more private social messages to and fromone or more users.

To provide collaboration and between and among a specific set of users,including between and among users that may not have a social connectionwith other users in the specific set of users, the social networkingsystem 101 may further enable the association and/or management of oneor more groups. In some embodiments, each group may be represented bysocial group information, which may include, but is not limited to,group identifier information (e.g., a unique identifier that identifiesa particular group in the social networking system 101), group privacyinformation (e.g., group privacy type for the particular group which mayinclude, but is not limited to, secret group type, open group type, orclosed group type), group cover image information, group descriptioninformation (e.g., a description associated with the particular group),group name information (e.g., the group name of the particular group),group owner information (e.g., the owner of the particular group), grouplocation information (e.g., the location of the particular group), groupmembership information (e.g., a list of group members in the particulargroup), group membership count information (e.g., a total number ofgroup members in the particular group), or any other informationassociated with one or more groups.

In some embodiments, the social networking system 101 may enable usersto create one or more groups in the social networking system 101utilizing the one or more applications (e.g., social application 124-1-2of FIG. 1B, etc.). Moreover, the social networking system 101 may enableusers to create one or more groups by receiving at least a portion ofthe social group information (e.g., group privacy information, groupcover image information, group description information, group nameinformation, group owner information, group membership information), andcreating a group based at least partially on the received social groupinformation.

In some embodiments, the social networking system 101, may provide userswith the latest updates regarding the activities of their socialconnections, groups, messages, or any other aspects of users' onlinepresence. To provide the latest updates, the social networking system101 may generate and/or provide users with one or more notificationsregarding the activities of their friends, family members, coworkers,teammates, classmates, business associates (i.e., user notifications),one or more notifications regarding the activities within one or moregroups where the users may be group members (i.e., user groupnotifications), and/or one or more notifications regarding theactivities within one or more forums where the users may be forummembers (i.e., user forum notifications).

To provide users with these and other social networking services, thesocial networking system 101 may comprise server device 106 which mayinclude, among other applications, social networking application 108.The social networking system 101 may further comprise one or moredatastores 112-d operatively coupled to the server device 106. The oneor more datastores 112-d may be configured to store one or moreresources or social networking objects representative of the informationreceived and provided by the social networking system 101. Moreover, thesocial networking objects of the social networking system 101 mayinclude, but is not limited to, user social messages information for oneor more users which may be stored in the messages datastore 112-1, oneor more user profiles which may be stored in the user profiles datastore112-2, one or more illustrated graphical UI elements which may be storedin the graphical elements datastore 112-3, one or more activities (e.g.,posts, polls, threads, etc.) which may be stored in the activitiesdatastore 112-4, one or more groups which may be stored in the groupsdatastore 112-5, media information (e.g., images, videos, files, etc.)which may be stored in media datastore 112-6, one or more events whichmay be stored in events datastore 112-7 (e.g., social events organizedbetween and among one or more users, etc.), or any other socialnetworking object that may be received, stored, provided, or otherwisetracked and/or accessed by the social networking system 101 to providethe users with these and other social networking services.

The one or more datastores 112-d may further store object connectionsbetween two or more objects or resources in the object connections datastore 112-8. Moreover, the object connections may be representative ofthe relationship or links between the two or more objects. The one ormore social networking objects in conjunction with one or more objectsconnections may form a social graph comprising two or more nodesinterconnected via one or more edges, where each node may berepresentative of a social networking object and each edge may berepresentative of the object connections between two or more socialnetworking objects in the social networking system 101. To enable theapplication 124-a-1 to retrieve, modify, update or otherwise access thevarious information managed by the social networking system 101 andrepresented as the social graph, the social networking application 108may further provide a graph application program interface (API)utilizing various protocols (e.g., HTTP, HTTPs, etc.).

In some embodiments, the social networking application 108 may includeone or more social networking components 110-c. At least some of the oneor more social networking components 110-c may be arranged to implementat least a portion of the graph API. The one or more social networkingcomponents 110-c may include, but is not limited to, a social networkingmanagement component 110-1, a social networking communications component110-2, social networking graphical elements component 110-3, and/orsocial networking messaging component 110-4.

The social networking management component 110-1 may be generallyarranged to enable association and management of one or more groups byone or more users, enable association and management of one or more userprofiles and/or user accounts by one or more users, enablecommunications between and among one or more users via of one or moremessages, search for information in the social networking system 101 inresponse to one or more search queries received from one or more usersvia applications 124-a-1, and provide search results to one or moreusers via the one or more applications 124-a-1.

The social networking graphical elements component 110-3 may begenerally arranged to manage the illustrated graphical elementsinformation stored in the graphical elements 112-3, determine usercontext information (e.g., user context information 224, etc.) for oneor more users based at least partially on at least a portion of userprofile information (e.g., user social messages information, userinterest information, user groups membership information, userbiographic information, user demographic information, etc.), user intentinformation, location information, calendar event information and/orexternal event information (e.g., weather information, sportsinformation, etc.). Additionally, the social networking graphicalelements component 110-3 may also be generally arranged to suggest orrecommend one or more illustrated graphical UI elements stored ingraphical elements datastore 112-3 based at least partially on usercontext information 224, user profile information 224, graphical elementpromotion information 219. The suggestions or recommendations may beprovided in a list of illustrated graphical element information 230.

The social networking messaging component 110-4 may be generallyarranged to provide messaging services to one or more users of thesocial networking system 101. Moreover, the social networking messagingcomponent 110-4 may be arranged to receive one or more social messagesfrom users utilizing one or more applications 124-a-1 of one or moredevices 102-a. The social networking messaging component 110-4 may bearranged to transmit one or more received social messages to therespective users via one or more applications 124-a-1 and/or 124-a-2 ofone or more devices 102-a. Additionally, the social networking messagingcomponent 110-4 may also be arranged to store the received and/ortransmitted messages between and among users in a messages datastore112-1. It may be appreciated that the one or more social messages mayinclude, but is not limited, to multi-media social messages which mayinclude, but is not limited to, images, video, and/or illustratedgraphical UI elements further discussed below and/or elsewhere.

The social networking communications component 110-2 may be generallyarranged to provide communications for the one or more social networkingcomponents 110-c and communicate (e.g., transmit and/or receiveinformation, etc.) with the one or more applications 124-a-1 and viacommunications network 103.

FIG. 1B illustrates an exemplary embodiment of a device 102-1, and insome embodiments, the device 102-1 may be a mobile device 102-1 (e.g., amobile phone or any other a portable computing and/or communicationsdevice), comprising one or more applications 124-1-b, in the mobilepredictive power management system 100. The mobile device 102-1 may begenerally arranged to provide mobile computing and/or mobilecommunications and may include, but is not limited to, system memory120, processing component 126, storage component 150, image capturecomponent 154, communications component 158, acoustic input/outputcomponent 162, touch sensitive display component 182, haptic component172, location component 172, acceleration component 180 and input/outputcomponent 184, where each of the components and system memory 120 may beoperatively connected via interconnect 130.

In some embodiments, the processor component 126 may be generallyarranged to execute instruction information including one or moreinstructions. In some embodiments, the processor component 126 may be amobile processor component or system-on-chip (SoC) processor componentwhich may comprise, among other elements, processor circuit 128. Theprocessor circuit 128 may include, but is not limited to, a centralprocessor unit (CPU) comprising a first set of electronic circuitsarranged to execute one or more instructions and/or a graphicsprocessing unit (GPU) comprising a second set of electronic circuitsarranged to execute one or more graphics-oriented instructions.Exemplary processor components 126 may include, but is not limited to,Qualcomm® Snapdragon®, Nvidia® Tegra®, Intel® Atom®, Samsung® Exynos,Apple® A7®, Apple® A8®, or any other type of mobile processing component126 arranged to execute the instruction information including the one ormore instructions stored in system memory 120 and/or storage component150.

In some embodiments, the storage component 150 may be generally arrangedto store information in volatile and/or nonvolatile memory, which mayinclude, but is not limited to, read-only memory (ROM), random-accessmemory (RAM), dynamic RAM (DRAM), Double-Data-Rate DRAM (DDRAM),synchronous DRAM (SDRAM), static RAM (SRAM), programmable ROM (PROM),erasable programmable ROM (EPROM), electrically erasable programmableROM (EEPROM) flash memory, polymer memory such as ferroelectric polymermemory, ovonic memory, phase change or ferroelectric memory,silicon-oxide-nitride-oxide-silicon (SONOS) memory, solid state memorydevices (e.g., USB memory, solid state drives SSD, etc.), and/or anyother type of storage media configured for storing information.

In some embodiments, the image capture component 154 may be generallyarranged to capture one or more images or a sequence of one or moreimages (e.g., video, etc.) and provide image information and/or videoinformation. The image capture component 154 may include, among otherelements, image sensor(s) 156. Exemplary image sensors(s) 156 mayinclude, but is not limited to, charged-coupled devices (CCD),active-pixel sensors (APS), or any other type of image sensors arrangedfor converting optical images into electronic signals that may becompressed, encoded, and/or stored as image information and/or videoinformation. It may be appreciated that while not illustrated, in someembodiments, the image sensor(s) 156 may be positioned to enable a userto view the image information and/or video information visuallypresented on the display device 168 and captured by the image sensor(s)156 substantially in real time, so that the user may easily capture, forexample, a self-portrait utilizing the image sensor(s) 156. For example,the image sensor(s) 156 may be physically positioned or placed on thesame plane as the display device 168 of the touch sensitive displaycomponent 182 and may be physically arranged to face a user using themobile device 102-1. This may enable the image sensor(s) 156 to captureand convert at least optical images that are substantially perpendicularto the same plane as the display device 168. Additionally oralternatively, the mobile device 102-1 may further include, but is notlimited to, additional image sensors positioned in other physicallocations of the mobile device 102-1.

In some embodiments, the communications component 158 may be generallyarranged to enable the mobile device 102-1 to communicate with thesocial networking system 101 via the communication network 103. Thecommunications component 158 may include, among other elements, a radiofrequency circuit 160 configured for encoding and/or decodinginformation and receiving and/or transmitting the encoded information asradio signals in frequencies consistent with the one or more wirelesscommunications standards (e.g., Wireless IEEE 802.11, WiMAX IEEE 802.16,Global Systems for Mobile Communications (GSM), Enhanced Data Rates forGSM Evolution (EDGE), Long Term Evolution (LTE), etc.). Furthermore, thecommunications component 158 may also generate and/or providecommunication connection type information which may be configured toindicate the current connection type. The communication connection typeinformation may include, but is not limited to, cellular connection typeto indicate the mobile device 102-1 is connected to communicationnetwork 103 using wireless cellular communications standards (e.g., GSM,LTE, etc.), Wifi connection type to indicate the mobile device 102-1 isconnected to the communication network 103 using wireless IEEE 802.11standards, disconnected connection type to indicate the mobile device102-1 is disconnected from the communication network 103, and/or anyother type of information that may indicate the type of connection themobile device 102-1 is currently utilizing to connect to communicationnetwork 103.

In some embodiments, the acoustic input/output (I/O) component 162 maybe generally arranged for converting sound, vibrations, or any othermechanical waves received into electronic signals representative ofacoustic input information utilizing an acoustic sensor 164 (e.g., amicrophone, etc.). Additionally, the acoustic I/O component 162 may befurther arranged to convert electronic signals representative ofacoustic output information utilizing an electroacoustic transducer 166(e.g., a speaker, etc.) to output sound, vibrations, or any othermechanical waves.

In some embodiments, the touch sensitive display component 182 may begenerally arranged to receive and present visual display information,and provide touch input information based on detected touch based orcontact based input. Moreover, the touch sensitive display component 182may include, among other elements, a display device 168 (e.g.,liquid-crystal display, light-emitting diode display, organiclight-emitting diode display, etc.) for presenting the visual displayinformation and touch sensor 170 (e.g., resistive touch sensor,capacitive touch sensor, etc.) associated with the display device 168 todetect and/or receive touch or contact based input information viaassociated with the display device 168. Additionally, in someembodiments, the touch sensor 170 may be integrated with the surface ofthe display device 168, so that a user's touch or contact input maysubstantially correspond to the presented visual display information onthe display device 168.

In some embodiments, the haptic component 172 may be generally arrangedto provide tactile feedback through the housing, case, or enclosure ofthe mobile device 102-1. Moreover, the haptic component 172 may include,among other elements, a vibration circuit 174 (e.g., an oscillatingmotor, vibrating motor, etc.) arranged to convert haptic information tomechanical vibrations representative of tactile feedback.

In some embodiments, the location component 176 may be generallyarranged to receive positioning signals representative of positioninginformation and provide location information (e.g., approximate physicallocation of the current mobile device 102-1) based at least partially onthe received positioning information. Moreover, the location component176 may include, among other elements, a positioning circuit 178 (e.g.,a global positioning system (GPS) receiver, etc.) arranged to determinethe physical location of the mobile device 102-1. In some embodiments,the location component 176 may be further arranged to communicate and/orinterface with the communications component 158 and communicate with thecommunications network 103 in order to provide greater accuracy and/orfaster location acquisition of the location information.

In some embodiments, the acceleration component 180 may be generallyarranged to detect acceleration of the mobile device 102-1 in one ormore axes. The acceleration component 180 may include, among otherelements, motion sensor 182 (e.g., accelerometer, etc.) to convertphysical motions applied the mobile device 102-1 into motioninformation.

In some embodiments, the input/output component 184 may be generallyarranged to provide signal I/O and may include, among other elements,input/output circuit 186. Exemplary input/output components 184 mayinclude, but is not limited to, microphone input component, headphoneoutput component, universal serial bus (USB) component, or any othersignal input/output component.

In some embodiments, the system memory 120 may be generally arranged tostore information in volatile and/or nonvolatile high speed memorysimilar to those discussed with respect to storage component 150. Insome embodiments, at least a portion of the stored information in thesystem memory 120 may comprise instruction information arranged forexecution by the processing component 126. In those embodiments, theinstruction information may be representative of at least one operatingsystem 122-1, one or more applications 124-1-b, and/or any otherprograms and/or modules. In some embodiments, the one or moreapplications 124-1-b may include, but is not limited to, a managementapplication 124-1-3 generally arranged to manage the execution of theone or more applications 124-1-b of the mobile device 102-1. The one ormore applications 124-1-b may further include, but is not limited to,messaging application 124-1-1, social application 124-1-2, imagingapplication 124-1-4, phone application 124-1-5, calendar application124-1-6, audio/video application 124-1-12, and/or any other applicationgenerally arranged for execution by the processing component 126.

In some embodiments, the operating system 122-1 may comprise a mobileoperations system 122-1 (e.g., Apple®, iOS®, Google® Android®, HP®WebOS®, Microsoft® Windows Phone®, Microsoft® Windows®, etc.) generalarranged to manage hardware resources (e.g., one or more components ofthe mobile device 102-1) and/or software resources (e.g., one or moreapplications 124-1-b of the mobile device 102-1). The operating system122-1 may be further arranged to modify execution states associated withone or more applications 124-1-b based at least partially on informationreceived from one or more components (e.g., touch sensitive displaycomponent 182, power source component (not shown), location component176, communications component 158, etc.) and/or one or more applications(e.g., messaging application 124-1-1, social application 124-1-2,management application 124-1-3, imaging application 124-1-4, phoneapplication 124-1-5, calendar application 124-1-6, etc.).

In some embodiments, the operating system 122-1 may be arranged tomodify execution states by transitioning the one or more applications124-1-b between and among the one or more execution states. The one ormore execution states may include, but is not limited to, foregroundstate, non-execution state, suspended state, and/or background state. Insome embodiments, applications 124-1-b may be initially in thenon-execution state where the instruction information associated withapplications 124-1-b in the non-execution state are not executed by theprocessor component 126 nor scheduled for execution by the processorcomponent 126.

In some embodiments, the operating system 122-1 may transition anapplication (e.g., messaging application 124-1-1) may transition fromthe foreground state to the suspended state, in response to a request tolaunch a different application (e.g., transitioning the differentapplication, such as, for example, social application 124-1-2 fromnon-execution state to the foreground state), switch to a differentapplication (e.g., transitioning the different application, such as, forexample, social application 124-1-2 from background state to theforeground state), or resume a different application (e.g.,transitioning the different application, such as, for example, socialapplication 124-1-2 from suspended state to the foreground state). Insome embodiments, the operating system 122-1 may transition theapplication from the foreground state to the background state where alimited portion of the instruction information (e.g., instructioninformation associated with a background thread of the application,etc.) associated with the application is continued for further executionby the processor component 126 while the one or more UI views may not bevisible or partially visible on the display device 168.

In some embodiments, the management application 124-1-3 may be visuallypresented as a home screen UI view (not shown) comprising a plurality ofUI elements representative of applications 124-1-b and may be generallyarranged to launch on startup of the mobile device 102-1 and operatingsystem 122-1. Additionally, the management application 124-1-3 may bearranged to receive touch input information from the touch sensitivedisplay component 182 in order to launch one or more applications124-1-b. In some embodiments, the management application 124-1-3 may bearranged to request the operating system 122-1 to launch or initiate theexecution of one or more applications 124-1-b of mobile device 102-1based at least partially on the received input information (e.g., touchbased input information received from touch sensor 170, etc.).

In some embodiments, the imaging application 124-1-4 may be generallyarranged to receive, store, display and/or otherwise manage imageinformation and/or video information via the image capture component154. In some embodiments, the messaging application 124-1-1 may include,but is not limited to, an illustrated graphical elements component 190and may be generally arranged to receive, transmit, display, and/orotherwise manage one or more messages including multimedia messages(e.g., pictures, videos, audio, etc.) utilizing one or more cellularand/or internet messaging services via one or more components of themobile device 102-1. In some embodiments, the social application 124-1-2may be generally arranged to provide social networking services betweenand among one or more users of one or more devices (e.g., Twitter®,Vine®, Facebook®, Reddit®, Digg®, Imgur®, etc.). In some embodiments,the imaging application 124-1-3 may be generally arranged to receive,store, display and/or otherwise manage image information and/or videoinformation received via the image capture component 154 and/orcommunications component 158 and/or stored in memory 120/and/or storagecomponent 150. In some embodiments, the phone application 124-1-5 may begenerally arranged to receive, make, display, and/or otherwise manageone or more audio and/or video phone calls utilizing one or morecellular and/or internet phone services via one or more components ofthe mobile device 102-1. In some embodiments, the calendar application124-1-6 may be generally arranged to store one or more appointments,meetings, and/or reminders, for a user of the mobile device 102-1. Insome embodiments, the imaging application 124-1-4 may be generallyarranged to record, playback, or output audio and/or video informationreceived via communications component 158 and/or stored in memory 120and/or storage component 150.

FIG. 1C illustrates an exemplary embodiment of the illustrated graphicalelements component 190 for managing one or more illustrated graphical UIelements transmitted and/or received between and among one or more usersin the social networking system 101 utilizing, for example, messagingapplication 124-1-1. It may be appreciated that, while not illustrated,the social application 124-1-2 and/or messaging application 124-1-1 maybe generally arranged to authenticate a user having an associated useraccount in the social networking system 101 based on at least a portionof the user account information (e.g., user account identifier and useraccount authentication token) inputted by the user utilizing, forexample, an on-screen virtual keyboard or any other input information.

Moreover, once the user having the associated user account has beenauthenticated, the social application 124-1-2 and/or messagingapplication 124-1-1 may be configured to receive one or more timelimited access tokens from the social networking application 108, andstore the one or more time limited access tokens in the storagecomponent 150 and/or system memory 120 of the mobile device 102-1 foruse by the one or more components of the social application 124-1-2and/or messaging application 124-1-1 (e.g., graphical elements component190) to utilize one or more services provided by the social networkingsystem 101 as a user having the associated user account informationand/or user profile information. The graphical elements component 190may further include one or more components, which may include, but isnot limited to, graphical elements management component 190-1, graphicalelements rendering component 190-2, graphical elements intent component190-3, graphical elements input component 190-4, graphical elementscommunications component 190-5.

The graphical elements communications component 190-5 may be generallyarranged to receive, transmit, and/or otherwise facilitatecommunications of information 192 between the one or more components ofthe graphical elements component 190, and the social networking system101 utilizing the received, stored, and/or cached one or more timelimited access tokens, one or more APIs (e.g., graph API), one or morecomponents of the messaging application 124-1-1, one or more componentsof the mobile device 102-1 (e.g., the communications component 158), andcommunications network 103.

The graphical elements rendering component 190-2 may be generallyarranged to provide visual display information to the touch sensitivedisplay component 182 and render at least a portion of one or more UIviews comprising one or more UI elements for visual presentation on thedisplay device 168. In some embodiments, the graphical elementsrendering component 190-2 may be further arranged to provide visualdisplay information to the touch sensitive display component 182 torender one or more animated transitions between the one or more viewsand/or render one or more animated UI elements for visual presentationon the display device 168.

The graphical elements intent component 190-3 may be generally arrangedto periodically (e.g., every 5 minutes, every 10 minutes, every hour,every 12 hours, every day, etc.) receive communications intent clustersinformation (e.g., communications intent clusters information 225),analyze one or more received, transmitted, and/or inputted socialmessages based at least partially on received communications intentclusters information from the social networking graphical elementscomponent 110-3, and/or configure the graphical elements renderingcomponent 190-2 to render and visually present one or more selectablegraphical element selection UI elements.

In some embodiments, the received communications intent clustersinformation may include, but is not limited to, one or morecommunication intent clusters, each communication intent cluster may berepresentative of a user's intent or intent of a user for a socialmessage, which may be represented by one or more terms, a short phrase,and/or symbols. To ensure that a wide variety of a user's intentexpressed in one or more social messages are properly identified, eachmessage intent cluster may be representative of a user intent (e.g.,“hungry”, “not hungry”, “excited”, “anxious”, “happy”, “sad”, etc.)associated with one or more terms, short phrases (e.g., synonyms,idioms, etc.), and/or symbols (e.g., text based ideograms, emoji, ASCIIbased emoticons, etc.) that may be associated with a user's intent.

In one non-limiting example, a communication intent cluster may berepresentative of “hungry” indicating that a user may be hungry forfood. The communication intent cluster representative of “hungry” may beassociated with a cluster of terms, phrases, and/or symbols such as, forexample, “hunger”, “hungry”, “starving”, “starve” “starved”, “famished”,“famish”, “:0” and/or any other terms and/or phrases that may indicatethat the user is hungry. In another non-limiting example, acommunication intent cluster may be representative “not hungry”indicating that the user is not hungry for food. The communicationintent cluster may also be associated with a cluster of terms and/orphrases such as, for example, “full”, “am full”, “stuffed”, “amstuffed”, “are stuffed”, “not hungry”, and/or any other terms or phrasesthat may indicate that the user is not hungry.

In some embodiments, graphical elements intent component 190-3 may beconfigured to analyze received, transmitted, and/or inputted socialmessages by scanning and matching one or more terms, phrases, and/orsequence of symbols in one or more received, transmitted, and/orinputted social messages. In one non-limiting example, the graphicalelements intent component 190-3 may search and match one or morereceived, transmitted, and/or inputted social messages for one or moreterms, phrases, and/or sequence of symbols with one or more terms,phrases, and/or symbols associated with communication intent clustersrepresented by the received communications intent clusters information.

In some embodiments, the graphical elements intent component 190-3 maybe configured to analyze, in near real time, the one or more socialmessages, in response to receiving the one or more messages from thesocial networking messaging component 110-4. Additionally, the graphicalelements intent component 190-3 may analyze, in near real time, the oneor more social messages as the one or more messages are transmitted tothe social networking messaging component 110-4. Furthermore, thegraphical elements intent component 190-3 may analyze, in near realtime, the one or more social messages, in response to receiving one ormore terms or phrases of each social message as the one or more terms orphrases of each social message are incrementally inputted, such as, forexample, incrementally inputted into a messaging application 124-1-1 viaa message input UI element (e.g., message input UI element 314 of FIG. 3, etc.) and an on-screen virtual keyboard (e.g., on screen keyboard 340of FIG. 3 , etc.).

In some embodiments, graphical elements intent component 190-3 may beconfigured the graphical elements rendering component 190-2 to emphasizeone or more terms, phrases, and/or symbols that match the one or moreterms, phrases, and/or symbols associated with one or more communicationintent clusters. In one non-limiting example, the graphical elementsintent component 190-3 may configure graphical elements renderingcomponent 190-2 to render and visually present one or more graphicalelements recommendation UI elements for one or more terms, phrases,and/or symbols that matches the one or more one or more terms, phrases,and/or symbols associated with one or more communication intentclusters. Moreover, the graphical elements intent component 190-3 mayconfigure graphical elements rendering component 190-2 to render theselectable graphical elements recommendation UI elements substantiallynear or on top (e.g., on top in a semi-transparent high contrast color)the one or more terms, phrases, and/or symbols that matches the one ormore one or more terms and/or phrases associated with one or morecommunication intent clusters. Additionally, to emphasize the one ormore matching term and/or phrase, the one or more selectable graphicalelements recommendation UI elements may, for example, highlight thematching terms, phrases and/or symbols, underline matching terms,phrases and/or symbols, or otherwise emphasize the matching terms,phrases and/or symbols in one or more received, transmitted, and/orinputted social messages.

The graphical elements input component 190-4 may be generally arrangedto provide user input information which may include, but is not limitedto, one or more gestures and provide character input informationutilizing one or more components of the mobile device 102-1 (e.g., touchsensitive display component 182). In some embodiments, the graphicalelements input component 190-4 may be configured to receive touch inputinformation from the touch sensitive display component 182 and determineone or more finger gestures based at least partially on the receivedtouch input information. In some embodiments, the graphical elementsinput component 190-4 may be configured to provide user inputinformation including the character input information to the based onone or more characters inputted by a user utilizing an on-screen virtualkeyboard visually presented on at least a portion of the display device168. Moreover, the character input information may be determined basedat least partially on one or more contacts detected in a predefinedregion associated with the on-screen virtual keyboard.

In some embodiments, the graphical elements input component 190-4 may befurther configured to detect a selection finger gesture to select aselectable UI element based at least partially on the received touchinput information, the received touched input information may include,but is not limited to, finger contact at a first location in apredefined region associated with the UI element visually presented onthe display device 168 for a predefined time period (e.g., less than onesecond), and termination of the finger contact at the first location ofthe predefined region.

In some embodiments, the graphical elements input component 190-4 may bealso configured to detect a scroll finger gesture to scroll a scrollableUI element and/or scrollable UI view based at least partially on thereceived touch input information, the received touched input informationmay include, but is not limited to, finger contact at a first locationin a predefined region associated with the scrollable UI element and/orscrollable UI view visually presented on the display device 168,initiating movement of the finger contact within a predefined timeperiod after the finger contact (e.g., less than one second), continuousmovement of the finger contact from the first location to a secondlocation in at least one direction (e.g., up direction, down direction,left direction, right direction, or any combination thereof), andtermination of the finger contact at the second location.

In some embodiments, the graphical elements input component 190-4 may befurther configured to detect a movement finger gesture to move amoveable UI element from a first position to a second position based atleast partially on the received touch input information. Furthermore,detecting the movement finger gesture may include, but is not limited todetecting a starting movement finger gesture to begin the movement of amoveable UI element and an ending movement finger gesture to end themovement of the moveable UI element.

In some embodiments, the graphical elements input component 190-4 may bealso configured to detect the starting movement finger gesture based onthe received touch input information which may include, but is notlimited to, finger contact at the first location in a predefined regionassociated with the moveable UI element visually presented on thedisplay device 168. The graphical elements input component 190-4 may beconfigured to detect the ending movement finger gesture based on thereceived touch input information which may include, but is not limitedto, finger contact from the first location to the second location in onedirection, and termination of the finger contact at the second locationafter movement of the finger contact.

In some embodiments, the graphical elements input component 190-4 may befurther configured to detect an edit finger gesture to begin editing aneditable UI element (e.g., modifying, color, shape, add text, removetext, add new features, etc.) based at least partially on the receivedtouch input information. Furthermore, detecting the edit finger gesturefinger gesture which may include, but is not limited to, finger contactat a location in a predefined region associated with the editable UIelement visually presented on the display device 168 for a predefinedtime period (e.g., two seconds, three seconds, etc.) and detectingtermination of the contact at the location after the predefined timeperiod.

It may be appreciated that in some embodiments, UI elements and/or UIviews may be configured as selectable, moveable, editable, and/orscrollable, and the graphical elements input component 190-4 may beconfigured to determine the respective finger gesture based at leastpartially on the received touch input information.

The graphical elements management component 190-1 be generally arrangedto provide management of one or more illustrated graphical UI elementsfor rendering and or visual presentation on display device 168. Toprovide context sensitive illustrated graphical UI elements management,the graphical elements management component 190-1 may be generallyarranged to request list of recommended graphical element identifierinformation (e.g., list of recommended graphical element identifierinformation 230 of FIG. 2A, etc.) from the social networking graphicalelements component 110-3. After receiving the list of recommendedgraphical element identifier information, the graphical elementsmanagement component 190-1 may be arranged to render and visuallypresent one or more illustrated graphical UI elements identified in thelist of recommended graphical element identifier information for sharingwith one or more users (e.g., shared as one or more social messages,etc.) via the social networking system 101.

In some embodiments, the graphical elements management component 190-1may be configured to request the one or more components of the messagingapplication 124-1-1 (e.g., a selection of a UI element graphicalelements input component 190-4) to transmit one or more illustratedgraphical UI elements for sharing with one or more users in aconversation comprising between one or more users. The request mayinclude, but is not limited to, graphical element identifier informationidentifying the illustrated graphical element for transmission to one ormore users in one or more social messages. In response to the request,the graphical elements management component 190-1 may be configured torequest the one or more components of the messaging application 124-1-1transmit the graphical element identifier information to the socialnetworking messaging component 110-4 for transmission to one or moreusers. Additionally, the graphical elements management component 190-1,may also be configured to request the one or more components of themessaging application 124-1-1 to render and visually present theillustrated graphical UI element identified by the graphical elementidentifier information in a message history UI element (e.g., messagehistory UI element 316 of FIG. 3 , etc.).

In some embodiments, the graphical elements management component 190-1may be configured to receive a request from the one or more componentsof the messaging application 124-1-1 (e.g., a selection of a selectableUI element such as, for example, selectable graphical elementsrecommendation UI element 318-1 and 318-2 of FIG. 3 , as detected bygraphical elements input component 190-4) to visually present one ormore illustrated graphical UI elements associated with a user's intentin a social message for sharing with one or more users. The request mayinclude, but is not limited to, a user's intent represented by usercommunications intent information (e.g., user communications intentinformation 208 of FIG. 2A), which may include, but is not limited to,one or more terms, short phrases, and/or symbols identifying a user'sintent for a particular social message. In response to the request tovisually present one or more illustrated graphical UI elements, thegraphical elements management component 190-1 may request a list ofrecommended graphical element identifier information from the socialnetworking graphical elements component 110-3.

To provide users with illustrated graphical UI elements applicable tonot only a user's intent as represented in the user communicationsintent information but also a user's context, in some embodiments, therequest for the list of recommended graphical element identifierinformation may include, but is not limited to, the user communicationsintent information (e.g., one or more terms, short phrases, and/orsymbols identifying a user's intent), device location information foridentifying the current location (e.g., longitude, latitude, and/oraltitude coordinates, etc.) of a device being used by a user to sendand/or receive one or more social messages such, as for example, mobiledevice 102-1, and/or calendar event information (e.g., one or morecalendar events associated with calendar application 124-1-6) foridentifying one or more calendar events stored on a device being used bya user to send and/or receive one or more social messages such as, forexample, mobile device 102-1. In response to the request, the graphicalelements management component 190-1 may receiving the list ofrecommended graphical element identifier information, where eachgraphical element identifier information may include, but is not limitedto, at least one illustrated graphical element identifier that mayidentify a particular illustrated graphical UI element stored in thegraphical elements datastore 112-3 or locally stored in a localgraphical elements datastore (not shown) in the system memory and/orstorage component of a device (e.g., system memory 120 and/or storagecomponent 150 of mobile device 102-1) as illustrated graphical elementinformation.

The illustrated graphical element information associated with anillustrated graphical UI element may include, but is not limited to,graphical element identifier information (e.g., a graphical elementidentifier that uniquely identifies a particular illustrated graphicalUI element), graphical element name information (e.g., the name ofillustrated graphical UI element), graphical element commercializationinformation (e.g., cost associated with the illustrated graphical UIelement, promotional information such as promotions and/or discounts inthe form of discount barcodes associated with sharing the illustratedgraphical UI element, etc.), graphical element rendering information(e.g., the information for rendering the illustrated graphical UIelement for visual presentation on a display device), graphical elementsource information (e.g., the affiliate, sponsor, associated entity,and/or source of the illustrated graphical UI element), graphicalelement set information (e.g., the one or more groups, sets, or packsthat a particular illustrated graphical UI element is part of or belongsto), graphical element popularity information (e.g., the number of timesthe illustrated graphical UI element has been shared between and amongall users in the social networking system in one or more set timeperiods, the user identifier information that shared the illustratedgraphical UI element in those set time periods), machine learnedgraphical element context information (e.g., one or more context termsidentified by machine learning based at least partially on selection ofone or more illustrated graphical UI elements and users' intent whenselecting the one or more illustrated graphical UI elements), and/orpredetermined graphical element context information (e.g., one or morecontext terms for identifying the appropriate context generally assignedby the affiliate, sponsor, associated entity and/or source of theillustrated graphical UI element).

To render and visually present graphical element preview UI element(e.g., the graphical element preview UI element 410) including one ormore illustrated graphical UI elements, the graphical elementsmanagement component 190-1 may be further configured to request andreceive illustrated graphical element information for each illustratedgraphical UI element identified by the illustrated graphical elementidentifier in each graphical element identifier information. Moreover,the graphical elements management component 190-1 may be configured torequest and receive illustrated graphical element information for one ormore illustrated graphical UI elements not already stored in a localgraphical elements datastore (not shown) stored in the system memory 120and/or storage component 150 from the social networking graphicalelements component 110-3.

In order to conserve bandwidth and/or limit the amount of informationreceived when a mobile device such as mobile device 102-1 is connectedto the communication network 103 that may restrict the amount ofbandwidth and/or amount of data transferred to and from the mobiledevice, the graphical elements management component 190-1 may vary thenumber of illustrated graphical UI elements represented by illustratedgraphical element information requested and received may vary for amobile device, such as, for example, mobile device 102-1 based at leastpartially on the communication connection type information generated bythe communications component 158 of the mobile device 102-1.

In one non-limiting example, the graphical elements management component190-1 may be configured to request and receive some or even all ofillustrated graphical UI elements and associated illustrated graphicalelement information identified in the received list of recommendedgraphical element identifier information, when communication connectiontype information indicates that the communication connection type isWifi connection type i.e., the mobile device is connected using wirelessIEEE 802.11.

In another non-limiting example, the graphical elements managementcomponent 190-1 may be configured to request and receive a fewer orlimited number of illustrated graphical UI elements and associatedillustrated graphical element information identified in the receivedlist of recommended graphical element identifier information, whencommunication connection type information indicates that thecommunication connection type is cellular connection type, i.e., themobile device is connected using cellular communication standards andaccordingly, may have a limit or restrictions on bandwidth and/or amountof data transferred to and from the mobile device.

After a sufficient number of illustrated graphical element informationhas been requested and received (e.g., sufficient number of illustratedgraphical element information to render and visually present thegraphical element preview UI element 410 in the graphical elementspreview UI view 400, etc.), the graphical elements management component190-1 may configure the graphical elements rendering component 190-2 torender and visually present one or more illustrated graphical UIelements (e.g., recommended illustrated graphical UI elements 410-1,410-2, 410-3, etc.) in the graphical element preview UI element.

Additionally or alternatively, in some embodiments, the graphicalelements management component 190-1 may also be configured to receive arequest from the one or more components of the messaging application124-1-1 (e.g., a selection of a UI element as detected by graphicalelements input component 190-4) to visually present one or moreillustrated graphical UI elements that the user has recently used,purchased, and/or owned. In embodiments where a request is received forrecently used illustrated graphical UI elements, the graphical elementsmanagement component 190-1 may configure the graphical elementsrendering component 190-2 to render and visually present one or moreillustrated graphical UI elements the user has recently used based atleast partially on user illustrated graphical elements usage informationand cached illustrated graphical element information stored in a localgraphical elements datastore (not shown) in system memory and/or storagecomponent of a device (e.g., system memory 120 and/or storage component150 of mobile device 102-1) used by the user.

In embodiments where a request is received for purchased or otherwiseowned illustrated graphical UI elements, the graphical elementsmanagement component 190-1 may configure the graphical elementsrendering component 190-2 to render and visually present one or moreillustrated graphical UI elements the user has owned based at leastpartially on user illustrated graphical elements ownership informationand cached illustrated graphical element information stored in a localgraphical elements datastore (not shown) in system memory and/or storagecomponent of a device (e.g., system memory 120 and/or storage component150 of mobile device 102-1) used by the user.

It may be appreciated that in instances when the local graphicalelements datastore (not shown) does not contain all the recently used,purchased, and/or owned illustrated graphical UI elements, the graphicalelements management component 190-1 may be configured to request andreceive illustrated graphical element information representative ofillustrated graphical UI elements that the local graphical elementsdatastore does not already store or otherwise contain, i.e., non-cachedillustrated graphical UI elements from the social networking graphicalelements component 110-3.

In some embodiments, the illustrated graphical UI elements in one ormore UI views (e.g., may be freely available to a user for sharing viamessaging application 124-1-1) as indicated by the associated graphicalelement commercialization information for each illustrated graphical UIelement. In other embodiments, the one or more illustrated graphical UIelements in one or more UI views (e.g., graphical elements preview UIview 400, etc.) may have a cost or price associated with an illustratedgraphical UI element for purchase by a user as indicated by theassociated graphical element commercialization information. It may beappreciated that the users may purchase the one or more illustratedgraphical UI elements via the messaging application 124-1-1 in one ormore UI views (e.g., graphical elements preview UI view 400, etc.) ofthe messaging application 124-1-1 as rendered and visually presented in,for example, a graphical element purchase UI element (not shown).Additionally or alternatively, the messaging application 124-1-1 mayalso enable users to purchase one or more illustrated graphical UIelements in one or more packs, groups, or sets where each packs, groups,or set may include one or more related illustrated graphical UIelements.

After rendering and visually presenting one or more illustratedgraphical elements in one or more UI views, the management component190-1 may be configured, to transmit illustrated graphical elementidentifier information associated with a user selected illustratedgraphical UI element as one or more social messages to one or more usersvia the social networking system 101.

In some embodiments, the messaging application 124-1-1 may be configuredto receive one or more social messages including illustrated graphicalelement identifier information representative of one or more illustratedgraphical UI elements transmitted by other users via the socialnetworking system 101. In those embodiments, the received illustratedgraphical element identifier information may identify a illustratedgraphical UI element represented by illustrated graphical elementinformation stored in a local graphical element datastore (not shown)and may be rendered and visually presented by the messaging application124-1-1 in one or more UI views on the display device 168 of the touchsensitive display component 182.

It may be appreciated that in instances when the local graphicalelements datastore (not shown) does not contain an illustrated graphicalUI element identified by the received illustrated graphical elementidentifier information, the graphical elements management component190-1 may be configured to request and receive illustrated graphicalelement information representative of illustrated graphical UI elementsthat the local graphical elements datastore does not already store orotherwise contain from the social networking illustrated graphicalelements component 110-3.

FIG. 2A illustrates an operating environment of a social networkinggraphical elements component. As illustrated in FIG. 2A, the operatingenvironment 200 may include, but is not limited to the social networkinggraphical elements component 110-3. The social networking graphicalelements component 110-3 may include, but is not limited to, socialnetworking graphical elements management component 244, contextdetermination component 246, and/or graphical elements recommendationcomponent 248.

In some embodiments, social networking graphical elements managementcomponent 244 may be configured to manage access to illustratedgraphical element information for one or more users based at leastpartially on one or more purchases and/or requests to access one or moreillustrated graphical UI elements. Moreover, the social networkinggraphical elements management component 244 may be configured to receivea request from graphical elements component 190 of a messagingapplication 124-1-1 for illustrated graphical element informationrepresentative of one or more illustrated graphical UI elements based atleast partially on illustrated graphical element identifier information,retrieve the requested illustrated graphical element information fromthe graphical elements datastore 112-3, and provide the retrievedillustrated graphical element information to the graphical elementscomponent 190 of a messaging application 124-1-1.

In some embodiments, the social networking graphical elements managementcomponent 244 may also be configured to analyze the messages datastore112-1 to determine user illustrated graphical elements usage informationfor each user and graphical element popularity information associatedwith each illustrated graphical UI element.

In some embodiments, the social networking graphical elements managementcomponent 244 may also be configured to analyze to determine machinelearned graphical element context information associated with eachillustrated graphical UI element based at least partially on the usercommunications intent information 208 in one or more social messages ofone or more users and the corresponding illustrated graphical elementidentifier information for one or more illustrated graphical UI elementsthat one or more users selected for transmission to one or morerecipient users. Moreover, the user communications intent information208 representative of a user's intent in a social message may be used tocorrelate the illustrated graphical UI element the user selected fortransmission in order to determine secondary contexts that anillustrated graphical UI element may have acquired over time through useby one or more users in the social networking system 101. The socialnetworking graphical elements management component 244 may perform theanalysis by correlating numerous users' selection of graphical UIelements with the respective associated user communications intentinformation 208 utilizing for example, well known, machine learningclustering algorithms.

In a non-limiting example, the social networking graphical elementsmanagement component 244 may update the machine learned graphicalelement information associated with an illustrated graphical UI elementrepresentative of a soccer referee announcing a goal (e.g., illustratedgraphical UI element 254-6) to include the context “excited”, when userscommunications intent information 225 identifies the users' intent inone or more social messages as being “excited” and the users select theillustrated graphical UI element (e.g., illustrated graphical UI element254-6) for transmission to one or more users via social networkingsystem 101.

In some embodiments, social networking graphical elements managementcomponent 244 may be configured to determine communications intentclusters information 225 including one or more communication intentclusters. The social networking graphical element management component244 may be configured to analyze user social messages information forone or more users to detect clusters of terms, phrases, and/or symbolsutilizing well known natural language processing algorithms andcorrelating the one or more clusters of terms phrases, and/or symbolsinto an intent of a user represented by one or more terms, a shortphrase, and/or symbols, based at least partially on in one or more userprofile information 210 (e.g., user social messages information, etc.).

In some embodiments, the social networking graphical elements managementcomponent 244 may be configured to continuously or periodically updatethe communications intent clusters information 225, and provide thecommunications intent clusters information 225 as requested by one ormore applications of one or more devices (e.g., messaging application124-1-1 of mobile device 102-1).

In some embodiments, including, but not limited to, embodiments whereillustrated graphical UI elements may be sponsored, the socialnetworking graphical elements management component 244 may be configuredto provide promotional information (e.g., provide promotionalinformation via e-mail, social messages, profile activities, etc.) whichmay include, promotions and/or discounts in the form of discountbarcodes (e.g., QR codes, etc.) to one or more users, based at leastpartially on graphical element commercialization information associatedwith each illustrated graphical UI element. Moreover, the graphicalelement commercialization information may indicate that a user sharingthe associated illustrated graphical UI element with one or morerecipient users and/or the one or more recipient users receiving theassociated illustrated graphical UI element may receive promotionsand/or discounts as indicated in the graphical element commercializationinformation for that illustrated graphical UI element.

In those embodiments, the social networking graphical elementsmanagement component 244 may be configured to provide the promotionalinformation associated with an illustrated graphical UI element to auser and/or one or more recipient users, when the user shares theillustrated graphical UI with the one or more recipient users via one ormore social messages and/or profile activities. It may be appreciatedthat the user sharing the illustrated graphical UI element and/or theone or more recipient users may receive the same promotional informationor different promotional information based on the commercializationinformation associated with each illustrated graphical UI element. Thismay empower users to purchase and/or share one or more illustratedgraphical UI elements while receiving discounts and/or promotionsassociated with sharing illustrated graphical UI elements.

In some embodiments, social networking graphical elements managementcomponent 244 may also be configured to request the determination of auser context information 224 and/or a list of recommended graphicalelement identifier information 230 by the context determinationcomponent 246 and the graphical elements recommendation component 248,respectively, for a user having an associated user profile information210, in response to receiving a request from a graphical elementscomponent 190 of a messaging application 124-1-1 for the list ofrecommended graphical element identifier information 230 and for theuser. The social networking graphical elements management component 244may also be configured to provide the list of recommended graphicalelement identifier information 230 to the user having the associateduser profile information 210.

In some embodiments, the context determination component 246 may beconfigured to determine user context information 224 for a particularuser based at least partially on user profile information 210 (e.g.,user interest information, user group membership information, usersocial messages information, user biographic and/or demographicinformation, user event information, user search information, etc.),device location information 212, and/or any other information associatedwith a user's presence within the social networking system 101.

The user context information 224 may include, but is not limited to, atleast one user context represented by user communication contextinformation 224-1, user location context information 224-2, user eventcontext information 224-3, user external event context information224-4, user interest context information 224-5, and/or any other usercontext information that may be determined based at least partially on auser's presence within the social networking system 101.

In some embodiments, the user location context information 224-2 mayidentify at least one user location context, which may include, but isnot limited to, one or more approximate locations (e.g., one or morepoints of interests within a circular shaped geo-fence having a specificradius such as 100 feet, 500 feet, 1000 feet, etc.) for a mobile device(e.g., mobile device 102-1) associated with a user, which may bedetermined by the context determination component 246 based at leastpartially on device location information 212, user profile information210 (e.g., user biographic and/or demographic information, user eventinformation, etc.), and/or calendar event information 214. In onenon-limiting example, user location context information 224-2 mayindicate that a user is currently located at a “McDonald's” with anassociated address of “1060 N. Rengstorff Ave., Mountain View, Calif.94043.” In another non-limiting example, the user location contextinformation 224-2 may indicate the user is currently located at “Home”with an associated address or at “Work” with an associated address. Inyet another non-limiting example, user location context information224-2 may indicate that the user may be currently at a “Birthday PartyEvent” with an associated address.

In some embodiments, the user event context information 224-3 mayidentify at least one user event context which may include, but is notlimited to, one or more current events that the user intends toparticipate, the location of that event, and the number of users who aresocially connected to the user that are also intending to participate oris currently participating, which may be determined by the contextdetermination component 246 based at least partially on calendar eventinformation 214, device location information 212, and/or user profileinformation 210 (e.g., user event information, etc.) associated with oneor more users. In one non-limiting example, the user event contextinformation 224-3 may indicate that the user intends to attend a“Birthday Party Event” at an associated address and two of the user'sfriends are also intending to attend.

In some embodiments, user interest context information 224-5 mayidentify at least one user interest context which may include, but isnot limited to, one or more current interests (e.g., favorite artists,favorite movies, favorite music, favorite books, favorite sports,favorite locations, favorite food, etc.) of a user, which may bedetermined by the context determination component 246 based at leastpartially on the user profile information 210 (e.g., user interestinformation, user search information, user biographic and/or demographicinformation, user event information, user group membership information,etc.) and/or calendar event information 214.

In one non-limiting example, the interest context information mayidentify a user who shows an interest for a particular artist such as“Pink Floyd”, when a user lists the particular artist as one of theirfavorite artists based on user interest information, is a member of oneor more groups associated with a particular artist or that genre ofmusic by the particular artist based on the user group membershipinformation, is located within the same hometown as the particularartist based on the user biographic and/or demographic information,intends to attend an event by that particular artist based at leastpartially on user profile information 210 (e.g., user event information,etc.) and/or calendar event information 214, and/or is frequentlysearched by the user in the social networking system 101 based at leastpartially on user profile information 210 (e.g., user searchinformation, etc.).

In some embodiments, user communication context information 224-1 mayidentify at least one current or recent user communication context whichmay include, but is not limited to, the intent of the user in a socialmessage being transmitted to one or more users as identified in the usercommunications intent information 208. Additionally, the usercommunication context information 224-1 may also identify the socialrelationship with respect to the one or more users, which may bedetermined by the context determination component 246 based at least onuser social messages information and/or user social connectionsinformation. Furthermore, the context determination component 246 mayalso identify a current conversation topic by optionally analyzing oneor more social messages to identify one or more “triggers” such as, forexample, one or more keywords and/or other content. In one non-limitingexample, the user communication context information may identify thatthe user's intent is “hungry” and is currently or was recentlydiscussing about art galleries with another user in the socialnetworking system 101 who is identified as their spouse.

In some embodiments, user external event context information 224-4 mayidentify at least one user external event context which may include, butis not limited to, one or more current external events in one or moreregions associated with the user's current location which may bedetermined by the context determination component 246 by retrievinginformation from one or more network accessible sources (e.g., websitessuch as Wikipedia, datastores, etc.) utilizing one or more APIs of theone or more network accessible sources. These current events mayinclude, but is not limited to, weather events for indicating thecurrent weather (e.g., sunny, partly cloudy, rain, thunderstorm, snow,etc.) and associated temperature with respect to the user's location,sports events for indicating the current local sports and/or globalsports games currently being played (e.g., a World Cup Soccer Gamecurrently being played between Germany and Argentina, etc.), holidayevents for indicating the current holiday (e.g., Christmas, Halloween,Veterans Day, etc.) or any other events that may be common to some orall users within one or more regions associated with the user's currentlocation.

In some embodiments, after the context determination component 246determines the user context information 224, the graphical elementsrecommendation component 248 may be configured to determine a list ofrecommended graphical element identifier information 230. As discussedabove and elsewhere, each recommended graphical element identifierinformation in the list of recommended graphical element identifierinformation 230 may include at least one illustrated graphical elementidentifier that identifies at least one illustrated graphical UI elementstored in the graphical elements datastore 112-3 and utilized by thegraphical elements component 190 to render and/or visually present oneor more UI views (e.g., graphical element messaging UI view, etc.)including one or more illustrated graphical UI elements.

In some embodiments, the graphical elements recommendation component 248may be configured to generate a list of recommended graphical elementidentifier information including one or more illustrated graphicalelement identifiers based at least partially on third party graphicalelements collection 218-1, social graphical elements collection 218-2,graphical elements promotion information 219, user profile information210 (e.g., user illustrated graphical elements ownership information,user illustrated graphical elements usage information, etc.), and/or theuser context information 224.

The third party graphical elements collection 218-1 may include, but isnot limited to, illustrated graphical element information representativeof illustrated graphical UI elements that are associated with thirdparty entities (e.g., entities that do not operate the social networkingsystem 101) such as, for example, Starbucks™, McDonald™, Disney™, or anyother third party entity based at least partially on graphical elementsource information.

The social graphical elements collection 218-2 may include, but is notlimited to, illustrated graphical element information representative ofillustrated graphical UI elements that are associated with the socialnetworking system 101 (e.g., entities that operates the socialnetworking system 101) such as, for example, Facebook™, LinkedIn™,MySpace™, or any other social networking entity based at least partiallyon graphical element source information.

In some embodiments, the graphical elements recommendation component 248may be configured to select at least one illustrated graphical UIelement from the one or more illustrated graphical UI elements includedin third party graphical elements collection 218-1 and/or socialgraphical elements collection 218-2. The graphical elementsrecommendation component 248 may select the at least one illustratedgraphical UI element by searching the third party graphical elementscollection 218-1 and/or the social graphical elements collection 218-2for at least one illustrated graphical UI element having predeterminedgraphical element context information including one or more contextterms that approximately matches the one or more contexts indicated inthe user context information 224 (e.g., at least one context termmatches at least one context).

To provide users with illustrated graphical UI elements that haveacquired secondary context through frequent use by one or more users,the graphical elements recommendation component 248 may also select theat least one illustrated graphical UI element by searching the thirdparty graphical elements collection 218-1 and/or the social graphicalelements collection 218-2 for at least one illustrated graphical UIelement having machine learned graphical element context informationincluding one or more context terms that approximately matches the oneor more contexts indicated in the user context information 224 (e.g., atleast one context term matches at least one context).

In one non-limiting example, the graphical elements recommendationcomponent 248 may be configured to select an illustrated graphical UIelement representative of holiday themed illustrated graphical UIelement including two illustrated mice holding forks with empty plates(e.g., illustrated graphical UI element 254-4) having a predeterminedgraphical element context information context information with one ormore terms indicating that associated context for the illustratedgraphical UI element includes, but is not limited to, “hungry”,“starving”, “holiday”, and/or “Christmas”, when the user communicationscontext information 224-1 indicates that the user's intent is hungry ina social message that is currently being inputted for transmission tothe user's spouse, and external event context information 224-4indicates that the current day is or near a holiday (e.g., within twoweeks before Christmas, thanksgiving, etc.) for a location and localtime associated with the mobile device 102-1 of the user.

In another non-limiting example, the graphical elements recommendationcomponent 248 may be configured to select an illustrated graphical UIelement representative of a hand holding flowers (e.g., illustratedgraphical UI element 254-2) having a predetermined graphical elementcontext information with one or more terms indicating that associatedcontext for the illustrated graphical UI element includes, but is notlimited to, “love” and/or “flowers”, when the user communicationscontext information 224-1 indicates that the user's intent is love in asocial message that is currently being inputted for transmission to theuser's spouse.

In another non-limiting example, the graphical elements recommendationcomponent 248 may be configured to select an illustrated graphical UIelement representative of a referee announcing a goal (e.g., illustratedgraphical UI element 254-6) having machine learned graphical elementcontext information indicating that associated context for theillustrated graphical UI element includes but is not limited to“excited”, when the user communications context information 224-1indicates that the user's intent in a social message that is currentlybeing inputted for transmission to the user's spouse is excited. It maybe appreciated that the illustrated graphical element 254-6 may have apredetermined graphical element context information with one or moreterms indicating that associated context for the illustrated graphicalUI element includes, but is not limited to, “goal”, “soccer”, and/or“score”, however, through frequent use of the illustrated graphicalelement 254-6 by one or more users with intent of excited in one or moresocial messages, the machined learned context graphical element contextinformation may include the context “excited”.

In some embodiments, the graphical elements recommendation component 248may be configured to bias the selection of illustrated graphical UIelements by limiting the selection of illustrated graphical UI elementsfrom the third party graphical elements collection 218-1 to selectingonly or exclusively illustrated graphical UI elements having graphicalelement source information and/or graphical element context informationthat are identified in the graphical elements promotion information 219.Moreover, the graphical elements promotion information 219 may include,but is not limited to promotion source information and promotion contextinformation. The promotion source information may include, but is notlimited to, one or more affiliates or sponsors (e.g., commercialentities, non-profit entities, government entities, etc.) that may haveprovided incentives (e.g., paid financial incentives) and/or pecuniaryinterests to the operators of the social networking system 101 and maycorrespond to one or more promotion contexts represented by promotioncontext information for a particular context the affiliates or sponsoris interested in promoting (e.g., movies, music, stores, websites,etc.). This may enable affiliates or sponsors to promote theirillustrated graphical UI elements in a particular context (e.g.,National Football League (NFL) promoting their football themedillustrated graphical UI elements, etc.) as a means of increasing brandrecognition by advertisement via sharing of one or more sponsoredillustrated graphical UI elements.

After selecting one or more illustrated graphical UI elements, in thegraphical elements recommendation component 248 may be configured tosort and/or rank the one or more selected illustrated graphical UIelements based at least partially on popularity of one or moreillustrated graphical UI elements. In some embodiments, the graphicalelements recommendation component 248 may be configured to sort and/orrank by starting with the most popular illustrated graphical UI elementsin a set time period (e.g., one day, one week, one month, one year, alltime, etc.) for a particular geographic location (e.g., in UnitedStates, Canada, California, San Francisco, etc.) based at least on thegraphical element popularity information associated with eachillustrated graphical UI element that were selected. Moreover, thegraphical element popularity information may include, but is not limitedto, values indicating the number of times a particular illustratedgraphical UI element has been transmitted, received, and/or otherwiseshared between and among users in a set time period such as, forexample, one day, one week, one month, one year, all time, and/or anyother set time period. Additionally, based at least partially on theuser profile information (e.g., user location information, etc.)identified by the graphical element popularity information (e.g., userprofile identifier information included in the graphical elementpopularity information) for users that shared the selected illustratedUI element, the graphical elements recommendation component 248 may alsodetermine the popularity of illustrated graphical UI elements for aparticular geographic location, such as, for example, continents,nations, counties, provinces, cities, and/or any other geographicalboundaries. Accordingly, by sorting and/or ranking the selectedillustrated graphical UI elements based at least partially on thegraphical element popularity information associated with each selectedillustrated graphical UI element for a set time period and geographiclocation, a user may be visually presented with the popular illustratedgraphical UI elements first in one or more UI views (e.g., in thegraphical element preview UI element 410 of graphical elements previewUI view 400).

Additionally or alternatively, in some embodiments, the graphicalelements recommendation component 248 may be configured to utilize wellknown machine learning algorithms to determine popularity of illustratedgraphical UI elements between and among users having particular userprofile information 210 (e.g., user demographic and/or biographicinformation, user interest information, etc.). Moreover, based at leastpartially on the user profile information (e.g., user locationinformation, etc.) identified by the graphical element popularityinformation (e.g., user profile identifier information included in thegraphical element popularity information) for users that shared theselected illustrated UI element, the graphical elements recommendationcomponent 248 may determine an ideal collection of biographic,demographic, and/or interest information for a user that is very likelyto share the selected illustrated graphical UI element, i.e., an idealgraphical element profile information utilizing well know machinelearning algorithms.

The graphical elements recommendation component 248 may then determineuser profile based graphical element popularity information for eachselected illustrated graphical UI element by comparing the user profileinformation 210 (e.g., user demographic and/or biographic information,user interest information, etc.) with the ideal graphical elementprofile information to determine a popularity value or coefficient(e.g., a normalized value from 1 to 100 where 100 being the mostpopular, etc.) of how likely the user having the user profileinformation 210 is predicted to share the illustrated graphical element.The closer (e.g., share a great percentage of interests, biographicand/or demographic information, etc.) the user profile information 210is compared to the ideal graphical element profile information thehigher the popularity value or coefficient. This may enable thegraphical elements recommendation component 248 to sort and rankillustrated graphical UI elements for the user having specific userprofile information 210, such as, for example, a user having userdemographic and/or biographic information indicating that the user is amale between the age of 18 and 25 and user interest informationindicating that the user likes music artist “Pink Floyd”.

After determining user profile based graphical element popularityinformation, the graphical elements recommendation component 248 maythen sort and/rank by starting with the most popular illustratedgraphical UI elements, including, but is not limited to, illustratedgraphical UI elements that are sponsored by affiliates or sponsors(e.g., commercial entities such as “NFL”, etc.) based at least partiallyon the user profile based graphical element popularity informationand/or the graphical element popularity information associated with eachselected illustrated graphical UI element. This may enable the graphicalelements recommendation component 248 to provide the most popularillustrated graphical UI elements for a user having specific userprofile information 210 (e.g., a male between age 18 and 25 that likes“Pink Floyd”) first before the less popular illustrated graphical UIelements.

Additionally or alternatively, the graphical elements recommendationcomponent 248 may be configured to sort and/or rank the selectedillustrated graphical UI elements based at least partially on userprofile information 210 and in particular, user illustrated graphicalelements ownership information and/or user illustrated graphicalelements usage information. Moreover, the graphical elementsrecommendation component 248 may be configured to sort and/or rank apredetermined number (e.g., 1, 2, 3, etc.) of selected illustratedgraphical UI elements to the front of the list (e.g., a fixed number ofspots) for any selected illustrated graphical UI elements that arepromoted by an affiliate or sponsor as indicated by the graphicalelements promotion information 219, i.e., promoted recommendedillustrated graphical UI elements. This may be followed by apredetermined number of selected illustrated graphical UI elements thatthe user does not already own as indicated by the user illustratedgraphical elements ownership information, i.e., unowned recommendedillustrated graphical UI elements. This may be further followed by apredetermined number of selected illustrated graphical UI elements thatthe user has recently used as indicated by the user illustratedgraphical elements usage information, i.e., recently used recommendedillustrated graphical UI elements. Finally, the remaining selectedillustrated graphical UI elements regardless of promotions, ownership,and/or recent use i.e., remaining recommended illustrated graphical UIelements.

In a non-limiting example, the list of recommended graphical elementidentifier information 230, may include one or more fixed sized groupsat the front or top of the list. Each group may include a predeterminednumber of illustrated graphical element identifier information. Thefirst group which may be at the front or top of the list may include,but is not limited to, illustrated graphical element identifierinformation to identify a predetermined number (e.g., 2) of promotedrecommended illustrated graphical UI elements. The second group afterthe first group may include, but is not limited to, illustratedgraphical element identifier information to identify a predeterminednumber (e.g., 2) of unowned recommended illustrated graphical UIelements. The third group after the second group may include, but is notlimited to, illustrated graphical element identifier information toidentify a predetermined number (e.g., 2) of recently used recommendedillustrated graphical UI elements. The fourth group after the thirdgroup, may include, but is not limited to, illustrated graphical elementidentifier information to identify the remaining recommended illustratedgraphical UI elements. This may assist users in the management ofillustrated graphical UI elements that user already owns and promoteillustrated graphical UI elements that the user does not already own orillustrated graphical UI elements that are being promoted by anaffiliate or sponsor.

In some embodiments, after the graphical elements recommendationcomponent 248 has selected, sorted, and/or ranked the illustratedgraphical UI elements based at least partially on user profileinformation 210, user context information 224, and/or graphical elementspromotion information 219, the graphical elements recommendationcomponent 248 may generate the list of recommended graphical elementidentifier information, where each graphical element identifierinformation may include an illustrated graphical element identifiercorresponding to a selected, sorted, and/ranked illustrated graphical UIelement. Additionally, in instances when the selected illustratedgraphical UI elements are sorted and/or ranked, the most popularrecommended illustrated graphical UI elements may be placed in the frontof the list or front of their respective groups in a descending order inaccordance with the above discussion.

In some embodiments, after the list of recommended graphical elementidentifier information has been generated, the social networkinggraphical elements management component 244 may transmit the generatedlist of recommended graphical element identifier information 230 to thedevice utilized by the user that requested the list of recommendedillustrated graphical element identifier information, such, as forexample, mobile device 102-1.

FIG. 2B illustrates an operating environment 250 of one or moreillustrated graphical UI elements stored in graphical elements datastore112-3. As illustrated in FIG. 2B, the graphical elements datastore 112-3which may include, but is not limited to, third party graphical elementscollection 218-1 and/or social graphical elements collection 218-2. Asdiscussed above and/or elsewhere, third party graphical elementscollection 218-1 and/or social graphical elements collection 218-2 mayeach include but is not limited to illustrated graphical elementinformation representative of one or more illustrated graphical UIelements 254-e.

It may be appreciated that while not illustrated, one or more of theillustrated graphical UI elements 254-e may be animated (e.g., animatedgifs etc.). In one non-limiting example, the illustrated graphical UIelement 254-6 representative of a soccer referee with his hands raisedmay include, but is not limited to, animated raising of hands frombottom to top and then from top to bottom.

FIG. 3 illustrates an exemplary graphical elements message input UI view300. As illustrated in FIG. 3 , the graphical elements message input UIview 300, may include, but is not limited to, display screen 310, ascrollable message history UI element 316, a message input UI element314, a received message UI element 320-1, selectable graphical elementsrecommendation UI element 318-1 and 318-2, on-screen virtual keyboard340, selectable message input UI element 324, and/or selectableillustrated graphical elements preview UI element 322.

In some embodiments, the scrollable message history UI element 316 mayinclude one more received social messages visually presented in one ormore received message UI elements such as, for example, received messageUI element 320-1 substantially justified or aligned to the left portionof the scrollable message history UI element 316. To enable the user toview the entire view the entire history of social messages, scrollablemessage history UI element 316 may also be scrolled (e.g., up and down)utilizing for example, a scroll finger gesture in the region defined bythe scrollable message history UI element 316.

To enable a user to input a one or more social messages for transmissionto the recipient user (e.g., recipient user “Jill Smith”), the messageinput UI element 314 in conjunction with on-screen virtual keyboard 340may enable users to input one or more social messages for transmissionto the recipient user.

To enable a user to view one or more recommended illustrated graphicalUI elements, the graphical elements message input UI view 300 mayfurther include one or more selectable graphical elements recommendationUI elements 318-1 and/or 318-2. As discussed above and/or elsewhere, theselectable graphical elements recommendation UI elements 318-1 and/or318-2 may emphasize terms “hungry” and/or “starving” in a communicationintent clusters representative of a user's intent for hungry byunderlining the, “hungry” and/or “starving” terms as illustrated. It maybe appreciated once a user selecting a selectable graphical elementsrecommendation UI elements 318-1 and/or 318-2 utilizing a selectionfinger gesture, the graphical elements management component 190-1 mayconfigure the graphical element rendering component 190-2 to render andvisually present graphical elements preview UI view 400 including one ormore illustrated graphical UI elements identified in a received list ofrecommended graphical elements information for the user's intent forhungry.

Additionally or alternatively, in some embodiments, the graphicalelements management component 190-1 may configure the graphical elementrendering component 190-2 to render and visually present graphicalelements preview UI view 400 including one or more illustrated graphicalUI elements the user have not purchased, purchased, owns, and/orrecently used, when the user selects the selectable illustratedgraphical elements preview UI element 322 utilizing a selection fingergesture. It may be appreciated that the user may return back tographical elements message input UI view 300 for social message input byselecting the selectable message input UI element 324 utilizing aselection finger gesture.

FIG. 4 illustrates a graphical elements preview UI view 400. Asillustrated in FIG. 4 , graphical elements preview UI view 400, whichmay include, among other UI elements, scrollable graphical elementpreview UI element 410, one or more selectable illustrated graphical UIelements 410-m, scrollable category selection UI element 412, and one ormore selectable category UI elements 412-n.

In some embodiments the scrollable graphical element preview UI element410 may visually present one or more selectable illustrated graphical UIelements 410-m in a 2 row by 4 column grid, when user selects theselectable graphical elements recommendation UI elements 318-1 and/or318-2. Moreover, one or more selectable illustrated graphical UIelements 410-m may be representative of illustrated graphical UIelements identified in the list of recommended graphical elementidentifier information received from social networking graphicalelements component 110-3. Additionally, in response to a selectionutilizing a selection finger gesture for a selectable illustratedgraphical UI element, such as selectable illustrated graphical UIelement 410-1, the graphical elements management component 190-1 maytransmit the social message in the message input UI element 314 and thegraphical element identifier information associated with the selectableillustrated graphical UI element 410-1 to the recipient user as furtherillustrated in FIG. 5 .

In instances when the list of recommended graphical element identifierinformation is sorted and ranked, the most popular illustrated graphicalUI element may be visually presented at first row and first column(i.e., top left corner) of the scrollable graphical element preview UIelement 410 with the lesser popular illustrated graphical UI elements atfirst row and second column. Accordingly, in a non-limiting example, themost popular illustrated graphical UI element may be illustratedgraphical UI element 410-1, followed by the less illustrated populargraphical UI elements 410-2, 410-3, 410-4, and so forth.

In instances when the list of recommended graphical element identifierinformation includes one or more fixed sized groups, the first group maybe visually presented starting with the first row and first column,first row second column, and so forth until all illustrated graphical UIelements are visually presented for the first group. This may befollowed by the second group, third group, and so forth. Accordingly, ina non-limiting example, the first group of illustrated graphical UIelements may include illustrated graphical UI elements 410-1 and 410-2,the second group of illustrated graphical elements may includeillustrated graphical elements 410-3 and 410-4, the third group ofillustrated graphical UI elements may include illustrated graphicalelements 410-5 and 410-6, and the remaining illustrated graphical UIelements may include, 410-7 until 410-m.

In some embodiments, the scrollable graphical element preview UI element410 may visually present one or more purchasable illustrated graphicalUI elements, when the purchasable category UI element 412-1 is selectedutilizing a selection finger gesture by a user. In some embodiments, thescrollable graphical element preview UI element 410 may visually presentone or more recommended illustrated graphical UI elements, when thepurchasable category UI element 412-1 is selected utilizing a selectionfinger gesture. In some embodiments, the scrollable graphical elementpreview UI element 410 may visually present one or more recently usedillustrated graphical UI elements when the selectable recently usedcategory UI element 412-3 is selected utilizing a selection fingergesture by a user. In some embodiments, the scrollable graphical elementpreview UI element 410 may visually present one or more similar themedselectable illustrated graphical UI elements, when the themed categoryUI elements 412-4, 412-5, 412-6, and/or 412-7.

FIG. 5 illustrates another embodiment of the graphical elements messageinput user interface view 300 after transmitting the social message andan illustrated graphical user interface element. As illustrated in FIG.5 , the scrollable message history UI element 316 may also include onemore transmitted social messages visually presented in one or moretransmitted message UI elements such as, for example, transmittedmessage UI element 520-1 substantially justified or aligned to the rightportion of the scrollable message history UI element 316. Additionally,the scrollable message history UI element 316 may also include thetransmitted and/or received illustrated graphical UI element, such as,for example, transmitted illustrated graphical UI element 522-1 alsojustified or aligned to the right portion of the scrollable messagehistory UI element 316. Although not illustrated, it may be appreciatedthat any transmitted illustrated graphical UI element may be justifiedor aligned to the left portion of the scrollable message history UIelement 316 similar to the received message UI element 320-1.

Included herein is a set of flow charts representative of exemplarymethodologies for performing novel aspects of the disclosedarchitecture. While, for purposes of simplicity of explanation, the oneor more methodologies shown herein, for example, in the form of a flowchart or flow diagram, are shown and described as a series of acts, itis to be understood and appreciated that the methodologies are notlimited by the order of acts, as some acts may, in accordance therewith,occur in a different order and/or concurrently with other acts from thatshown and described herein. For example, those skilled in the art willunderstand and appreciate that a methodology could alternatively berepresented as a series of interrelated states or events, such as in astate diagram.

FIG. 6 illustrates one embodiment of a logic flow 600. The logic flow600 may be representative of some or all of the operations executed byone or more embodiments described herein.

In the illustrated embodiment shown in FIG. 6 , the logic flow 600 maystart at block 602 and may receive a request from a mobile device for alist of recommended illustrated graphical element informationrepresentative of at least one illustrated graphical UI element.at 604.For example, social networking graphical elements management component244 may receive a request from mobile device 102-1 to determine a listof recommended graphical element identifier information 230.

The logic flow 600 may determine user context information representativeof at least one user context based at least partially on usercommunications intent information, user profile information, devicelocation information, calendar event information, and/or external eventinformation at 406. For example, context determination component 246 maydetermine the user context information 224 representative of at leastone user context based at least partially on user communications intentinformation 208, user profile information 210, device locationinformation 212, calendar event information 214, and/or external eventinformation 216.

The logic flow 600 may generate the list of recommended graphicalelement identifier information based at least partially on the userprofile information, graphical elements promotion information, and/orthe user context information at 608. For example, graphical elementsrecommendation component 248 may generate the list of recommendedgraphical element identifier information 230 based at least partially onthe user profile information 210, graphical elements promotioninformation 219, and the user context information 224.

The logic flow 600 may provide the list of recommended graphical elementidentifier information to the mobile device, each recommended graphicalelement identifier information in the list of recommended graphicalelement identifier information identifying an illustrated graphical UIelement associated with the at least one user context at 610. Forexample, the social networking graphical elements management component244 may provide the list of recommended graphical element identifierinformation 230 to the mobile device 102-1, each recommended graphicalelement identifier information in the list of recommended graphicalelement identifier information identifying an illustrated graphical UIelement (e.g., illustrated graphical UI element 254-4) associated withthe at least one user context.

The logic flow 600 may receive a request for an illustrated graphicalelement information representative of at least one illustrated graphicalUI element, the request comprising an illustrated graphical elementidentifier information that identifies the at least one illustratedgraphical UI element at 612. For example, social networking graphicalelements management component 244 may receive a request from the mobiledevice 102-1 for illustrated graphical element informationrepresentative of at least one illustrated graphical UI element (e.g.,illustrated graphical UI element 254-4), the request comprisingillustrated graphical element identifier information representative ofthe at least one illustrated graphical UI element.

The logic flow 600 may provide the illustrated graphical elementinformation representative of the at least one illustrated graphical UIelement and identified by the illustrated graphical element identifierinformation for rendering and visual presentation on a display screen at614 and end at 616. For example, social networking graphical elementsmanagement component 244 may provide the illustrated graphical elementinformation representative of the at least one illustrated graphical UIelement (e.g., illustrated graphical UI element 254-4) and identified bythe illustrated graphical element identifier information to the mobiledevice 102-1 for rendering and visual presentation on a display screen310 of the mobile device 102-1. The examples are not limited in thiscontext.

FIG. 7 illustrates an embodiment of an exemplary computing architecture700 suitable for implementing various embodiments as previouslydescribed, such as, for example server device 106 and/or one or moredevices 102-a. In one embodiment, the computing architecture 700 maycomprise or be implemented as part of an electronic device. In anotherembodiment, the computer architecture 700 may be implemented as part ofa cloud computing platform as a physical machine or virtual machine in anetwork of one or more physical and/or virtual machines. The embodimentsare not limited in this context.

As used in this application, the terms “system” and “component” areintended to refer to a computer-related entity, either hardware, acombination of hardware and software, software, or software inexecution, examples of which are provided by the exemplary computingarchitecture 700. For example, a component can be, but is not limited tobeing, a process running on a processor, a processor, a hard disk drive,multiple storage drives (of optical and/or magnetic storage medium), anobject, an executable, a thread of execution, a program, and/or acomputer. By way of illustration, both an application running on aserver and the server can be a component. One or more components canreside within a process and/or thread of execution, and a component canbe localized on one computer and/or distributed between two or morecomputers. Further, components may be communicatively coupled to eachother by various types of communications media to coordinate operations.The coordination may involve the uni-directional or bi-directionalexchange of information. For instance, the components may communicateinformation in the form of signals communicated over the communicationsmedia. The information can be implemented as signals allocated tovarious signal lines. In such allocations, each message is a signal.Further embodiments, however, may alternatively employ data messages.Such data messages may be sent across various connections. Exemplaryconnections include parallel interfaces, serial interfaces, and businterfaces.

The computing architecture 700 includes various common computingelements, such as one or more processors, multi-core processors,co-processors, memory units, chipsets, controllers, peripherals,interfaces, oscillators, timing devices, video cards, audio cards,multimedia input/output (I/O) components, power supplies, and so forth.The embodiments, however, are not limited to implementation by thecomputing architecture 700.

As shown in FIG. 7 , the computing architecture 700 comprises aprocessing unit 704, a system memory 706 and a system bus 708. Theprocessing unit 704 can be any of various commercially availableprocessors, including without limitation an AMD® Athlon®, Duron® andOpteron® processors; ARM® application, embedded and secure processors;IBM® and Motorola® DragonBall® and PowerPC® processors; IBM and Sony®Cell processors; Intel® Celeron®, Core (2) Duo®, Itanium®, Pentium®,Xeon®, and XScale® processors; and similar processors. Dualmicroprocessors, multi-core processors, and other multi-processorarchitectures may also be employed as the processing unit 704.

The system bus 708 provides an interface for system componentsincluding, but not limited to, the system memory 706 to the processingunit 704. The system bus 708 can be any of several types of busstructure that may further interconnect to a memory bus (with or withouta memory controller), a peripheral bus, and a local bus using any of avariety of commercially available bus architectures. Interface adaptersmay connect to the system bus 708 via a slot architecture. Example slotarchitectures may include without limitation Accelerated Graphics Port(AGP), Card Bus, (Extended) Industry Standard Architecture ((E)ISA),Micro Channel Architecture (MCA), NuBus, Peripheral ComponentInterconnect (Extended) (PCI(X)), PCI Express, Personal Computer MemoryCard International Association (PCMCIA), and the like.

The computing architecture 700 may comprise or implement variousarticles of manufacture. An article of manufacture may comprise acomputer-readable storage medium to store logic. Examples of acomputer-readable storage medium may include any tangible media capableof storing electronic data, including volatile memory or non-volatilememory, removable or non-removable memory, erasable or non-erasablememory, writeable or re-writeable memory, and so forth. Examples oflogic may include executable computer program instructions implementedusing any suitable type of code, such as source code, compiled code,interpreted code, executable code, static code, dynamic code,object-oriented code, visual code, and the like. Embodiments may also beat least partly implemented as instructions contained in or on anon-transitory computer-readable medium, which may be read and executedby one or more processors to enable performance of the operationsdescribed herein.

The system memory 706 may include various types of computer-readablestorage media in the form of one or more higher speed memory units, suchas read-only memory (ROM), random-access memory (RAM), dynamic RAM(DRAM), Double-Data-Rate DRAM (DDRAM), synchronous DRAM (SDRAM), staticRAM (SRAM), programmable ROM (PROM), erasable programmable ROM (EPROM),electrically erasable programmable ROM (EEPROM), flash memory, polymermemory such as ferroelectric polymer memory, ovonic memory, phase changeor ferroelectric memory, silicon-oxide-nitride-oxide-silicon (SONOS)memory, magnetic or optical cards, an array of devices such as RedundantArray of Independent Disks (RAID) drives, solid state memory devices(e.g., USB memory, solid state drives (SSD) and any other type ofstorage media suitable for storing information. In the illustratedembodiment shown in FIG. 7 , the system memory 706 can includenon-volatile memory 710 and/or volatile memory 712. A basic input/outputsystem (BIOS) can be stored in the non-volatile memory 710.

The computer 702 may include various types of computer-readable storagemedia in the form of one or more lower speed memory units, including aninternal (or external) hard disk drive (HDD) 714, a magnetic floppy diskdrive (FDD) 716 to read from or write to a removable magnetic disk 718,and an optical disk drive 720 to read from or write to a removableoptical disk 722 (e.g., a CD-ROM or DVD). The HDD 714, FDD 716 andoptical disk drive 720 can be connected to the system bus 708 by a HDDinterface 724, an FDD interface 726 and an optical drive interface 728,respectively. The HDD interface 724 for external drive implementationscan include at least one or both of Universal Serial Bus (USB) and IEEE1394 interface technologies.

The drives and associated computer-readable media provide volatileand/or nonvolatile storage of data, data structures, computer-executableinstructions, and so forth. For example, a number of program modules canbe stored in the drives and memory units 710, 712, including anoperating system 730, one or more application programs 732, otherprogram modules 734, and program data 736. In one embodiment, the one ormore application programs 732, other program modules 734, and programdata 736 can include, for example, the various applications and/orcomponents of the system 100.

A user can enter commands and information into the computer 702 throughone or more wire/wireless input devices, for example, a keyboard 738 anda pointing device, such as a mouse 740. Other input devices may includemicrophones, infra-red (IR) remote controls, radio-frequency (RF) remotecontrols, game pads, stylus pens, card readers, dongles, finger printreaders, gloves, graphics tablets, joysticks, keyboards, retina readers,touch screens (e.g., capacitive, resistive, etc.), trackballs,trackpads, sensors, styluses, and the like. These and other inputdevices are often connected to the processing unit 704 through an inputdevice interface 742 that is coupled to the system bus 708, but can beconnected by other interfaces such as a parallel port, IEEE 1394 serialport, a game port, a USB port, an IR interface, and so forth.

A monitor 744 or other type of display device is also connected to thesystem bus 708 via an interface, such as a video adaptor 746. Themonitor 744 may be internal or external to the computer 702. In additionto the monitor 744, a computer typically includes other peripheraloutput devices, such as speakers, printers, and so forth.

The computer 702 may operate in a networked environment using logicalconnections via wire and/or wireless communications to one or moreremote computers, such as a remote computer 748. The remote computer 748can be a workstation, a server computer, a router, a personal computer,portable computer, microprocessor-based entertainment appliance, a peerdevice or other common network node, and typically includes many or allof the elements described relative to the computer 702, although, forpurposes of brevity, only a memory/storage device 750 is illustrated.The logical connections depicted include wire/wireless connectivity to alocal area network (LAN) 752 and/or larger networks, for example, a widearea network (WAN) 754. Such LAN and WAN networking environments arecommonplace in offices and companies, and facilitate enterprise-widecomputer networks, such as intranets, all of which may connect to aglobal communications network, for example, the Internet.

When used in a LAN networking environment, the computer 702 is connectedto the LAN 752 through a wire and/or wireless communication networkinterface or adaptor 756. The adaptor 756 can facilitate wire and/orwireless communications to the LAN 752, which may also include awireless access point disposed thereon for communicating with thewireless functionality of the adaptor 756.

When used in a WAN networking environment, the computer 702 can includea modem 758, or is connected to a communications server on the WAN 754,or has other means for establishing communications over the WAN 754,such as by way of the Internet. The modem 758, which can be internal orexternal and a wire and/or wireless device, connects to the system bus708 via the input device interface 742. In a networked environment,program modules depicted relative to the computer 702, or portionsthereof, can be stored in the remote memory/storage device 750. It willbe appreciated that the network connections shown are exemplary andother means of establishing a communications link between the computerscan be used.

The computer 702 is operable to communicate with wire and wirelessdevices or entities using the IEEE 802 family of standards, such aswireless devices operatively disposed in wireless communication (e.g.,IEEE 802.11 over-the-air modulation techniques). This includes at leastWi-Fi (or Wireless Fidelity), WiMax, and Bluetooth™ wirelesstechnologies, among others. Thus, the communication can be a predefinedstructure as with a conventional network or simply an ad hoccommunication between at least two devices. Wi-Fi networks use radiotechnologies called IEEE 802.11x (a, b, g, n, etc.) to provide secure,reliable, fast wireless connectivity. A Wi-Fi network can be used toconnect computers to each other, to the Internet, and to wire networks(which use IEEE 802.3-related media and functions).

Some embodiments may be described using the expression “one embodiment”or “an embodiment” along with their derivatives. These terms mean that aparticular feature, structure, or characteristic described in connectionwith the embodiment is included in at least one embodiment. Theappearances of the phrase “in one embodiment” in various places in thespecification are not necessarily all referring to the same embodiment.Further, some embodiments may be described using the expression“coupled” and “connected” along with their derivatives. These terms arenot necessarily intended as synonyms for each other. For example, someembodiments may be described using the terms “connected” and/or“coupled” to indicate that two or more elements are in direct physicalor electrical contact with each other. The term “coupled,” however, mayalso mean that two or more elements are not in direct contact with eachother, but yet still co-operate or interact with each other.

It is emphasized that the Abstract of the Disclosure is provided toallow a reader to quickly ascertain the nature of the technicaldisclosure. It is submitted with the understanding that it will not beused to interpret or limit the scope or meaning of the claims. Inaddition, in the foregoing Detailed Description, it can be seen thatvarious features are grouped together in a single embodiment for thepurpose of streamlining the disclosure. This method of disclosure is notto be interpreted as reflecting an intention that the claimedembodiments need more features than are expressly recited in each claim.Rather, as the following claims reflect, inventive subject matter liesin less than all features of a single disclosed embodiment. Thus thefollowing claims are hereby incorporated into the Detailed Description,with each claim standing on its own as a separate embodiment. In theappended claims, the terms “including” and “in which” are used as theplain-English equivalents of the respective terms “comprising” and“wherein,” respectively. Moreover, the terms ‘first,” “second,” ‘third,”and so forth, are used merely as labels, and are not intended to imposenumerical requirements on their objects.

What has been described above includes examples of the disclosedarchitecture. It is, of course, not possible to describe everyconceivable combination of components and/or methodologies, but one ofordinary skill in the art may recognize that many further combinationsand permutations are possible. Accordingly, the novel architecture isintended to embrace all such alterations, modifications and variationsthat fall within the spirit and scope of the appended claims.

What is claimed is:
 1. A method comprising: determining contextinformation for a messaging thread between a user and one or moreco-users; generating a list of recommended stickers for the user basedon the context information; and providing one or more recommendedstickers from the list of recommended stickers for display to the userin a messaging graphical user interface including the messaging thread.2. The method as recited in claim 1, wherein determining the contextinformation for the messaging thread between the user and the one ormore co-users comprises analyzing one or more messages within themessaging thread to identify one or more keywords.
 3. The method asrecited in claim 1, wherein determining the context information for themessaging thread between the user and the one or more co-userscomprises: determining one or more devices locations of one or more ofthe user or the one or more co-users; and identifying an event as thecontext information based on the one or more devices locations.
 4. Themethod as recited in claim 1, wherein determining the contextinformation for the messaging thread between the user and the one ormore co-users comprises identifying an interest of one or more of theuser and or the one or more co-users based on calendar information, userprofile information, device location information, or content of themessaging thread.
 5. The method as recited in claim 1, whereingenerating the list of recommended stickers for the user based on thecontext information comprises generating a ranked list of stickers basedon a machine learned popularity specific to the context information. 6.The method as recited in claim 1, wherein generating the list ofrecommended stickers for the user based on the context informationcomprises: generating a popularity coefficient for each of a pluralityof stickers that indicates how likely the user is to share a givensticker of the plurality of stickers based on the context information;and including stickers with high popularity coefficients in the list ofrecommended stickers.
 7. The method as recited in claim 1, whereinproviding the one or more recommended stickers from the list ofrecommended stickers for display to the user in the messaging graphicaluser interface including the messaging thread comprises displaying ascrollable grid of recommend stickers below the messaging thread in themessaging graphical user interface.
 8. A system comprising: one or morememory devices; and one or more processor devices, coupled to the one ormore memory devices, that cause the system to: determine contextinformation for a messaging thread between a user and one or moreco-users; generate a list of recommended stickers for the user based onthe context information; and provide one or more recommended stickersfrom the list of recommended stickers for display to the user inmessaging graphical user interface including the messaging thread. 9.The system as recited in claim 8, wherein the one or more processordevices cause the system to determine the context information for themessaging thread between the user and the one or more co-users byanalyzing one or more messages within the messaging thread to identifyone or more keywords.
 10. The system as recited in claim 8, wherein theone or more processor devices cause the system to determine the contextinformation for the messaging thread between the user and the one ormore co-users by: determining one or more devices locations of one ormore of the user or the one or more co-users; and identifying an eventas the context information based on the one or more devices locations.11. The system as recited in claim 8, wherein the one or more processordevices cause the system to determine the context information for themessaging thread between the user and the one or more co-users byidentifying an interest of one or more of the user and or the one ormore co-users based on calendar information, user profile information,device location information, or content of the messaging thread.
 12. Thesystem as recited in claim 8, wherein the one or more processor devicescause the system to generate the list of recommended stickers for theuser based on the context information by: generating a popularitycoefficient for each of a plurality of stickers that indicates howlikely the user is to share a given sticker of the plurality of stickersbased on the context information; and including stickers with highpopularity coefficients in the list of recommended stickers.
 13. Thesystem as recited in claim 12, wherein the one or more processor devicescause the system to provide the one or more recommended stickers fromthe list of recommended stickers for display to the user in themessaging graphical user interface including the messaging thread bydisplaying a scrollable grid of recommend stickers below the messagingthread in the messaging graphical user interface.
 14. A non-transitorycomputer-readable medium storing instructions thereon that, whenexecuted by at least one processor, cause the at least one processor toperform operations comprising: determining context information for amessaging thread between a user and one or more co-users; generating alist of recommended stickers for the user based on the contextinformation; and providing one or more recommended stickers from thelist of recommended stickers for display to the user in messaginggraphical user interface including the messaging thread.
 15. Thenon-transitory computer-readable medium as recited in claim 14, whereindetermining the context information for the messaging thread between theuser and the one or more co-users comprises analyzing one or moremessages within the messaging thread to identify one or more keywords.16. The non-transitory computer-readable medium as recited in claim 14,wherein determining the context information for the messaging threadbetween the user and the one or more co-users comprises: determining oneor more devices locations of one or more of the user or the one or moreco-users; and identifying an event as the context information based onthe one or more devices locations.
 17. The non-transitorycomputer-readable medium as recited in claim 14, wherein determining thecontext information for the messaging thread between the user and theone or more co-users comprises identifying an interest of one or more ofthe user and or the one or more co-users based on calendar information,user profile information, device location information, or content of themessaging thread.
 18. The non-transitory computer-readable medium asrecited in claim 14, wherein generating the list of recommended stickersfor the user based on the context information comprises generating aranked list of stickers based on a machine learned popularity specificto the context information.
 19. The non-transitory computer-readablemedium as recited in claim 14, wherein generating the list ofrecommended stickers for the user based on the context informationcomprises: generating a popularity coefficient for each of a pluralityof stickers that indicates how likely the user is to share a givensticker of the plurality of stickers based on the context information;and including stickers with high popularity coefficients in the list ofrecommended stickers.
 20. The non-transitory computer-readable medium asrecited in claim 14, wherein providing the one or more recommendedstickers from the list of recommended stickers for display to the userin the messaging graphical user interface including the messaging threadcomprises displaying a scrollable grid of recommend stickers below themessaging thread in the messaging graphical user interface.